我有一个数据帧,以及与df相同的垂直大小的系列,我想分配 该系列到DataFrame的所有列。 为什么这么做是自然的?
例如
df = pd.DataFrame([[1, 2 ], [3, 4], [5 , 6]] )
ser = pd.Series([1, 2, 3 ])
我希望“df”的所有列都等于“ser”。
PS相关:
通过回答解决问题的一种方法: How to assign dataframe[ boolean Mask] = Series - make it row-wise ? I.e. where Mask = true take values from the same row of the Series(创建所有真正的面具),但我想还应该有更多 简单的方法。
如果我不需要所有,但有些专栏 - 答案在这里给出: Assign a Series to several Rows of a Pandas DataFrame
答案 0 :(得分:1)
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
参数:
df = pd.DataFrame({c:ser for c in df.columns}, columns=df.columns)
答案 1 :(得分:1)
可能采用不同的方式来看待它:
df = pd.concat([ser] * df.shape[1], axis=1)