2017-10-16 8 views
1

データフレームとdfと同じ垂直サイズのシリーズがあり、そのシリーズをDataFrameのすべての列に に割り当てたいとします。 それはなぜ自然なのですか?例えばdataFrameのすべての列に列を割り当てます(列単位)?

df = pd.DataFrame([[1, 2 ], [3, 4], [5 , 6]]) 
ser = pd.Series([1, 2, 3 ]) 

私は "DF" のすべての列が "SER" に等しくなるようにしたいです。

PS関連:

+1

使用' pd.DataFrame? – Zero

+0

@Zeroありがとうございます!それは動作します!私が期待しているのは、MatLabの "repmat"のような特別な指示があることです。そんなことは分かりませんか? –

答えて

1

使用to_frame

a = ser.to_frame().reindex(columns=df.columns, method='ffill') 
print (a) 
    0 1 
0 1 1 
1 2 2 
2 3 3 

しかし、それは簡単に思えるがcommentからソリューションです実際のデータでオリジナルと同じ注文列を必要とする場合、columnsパラメータが追加されました:

012たぶん
df = pd.DataFrame({c:ser for c in df.columns}, columns=df.columns) 
+0

ありがとう、もう一度!しかし、私はあなたに尋ねてもいいでしょう。特にPythonの特別な命令はありませんか? Matlabの "repmat"のように。 –

+1

私は残念なことに、だと思います:( – jezrael

+0

@AlexanderChervov - 夕食、今答える;) – jezrael

1

それを見て別の方法: `:({DFにおけるCからser C})

df = pd.concat([ser] * df.shape[1], axis=1) 
関連する問題