我有一个声明为3列的空数据框:
df = pd.DataFrame(columns=['colA', 'colB', 'colC'])
我有一个Nx2数组:
data = np.ones((100,2))
我想将数据数组放在数据框的两列(colB和colC)中,所以我尝试了以下操作:
df[["colB","colC"]] = data
但是我收到形状不匹配错误:
ValueError: shape mismatch: value array of shape (100,2) could not be broadcast to indexing result of shape (2,0)
我可以逐列进行:
df["colB"] = data[:,0]
df["colC"] = data[:,1]
是否有将数组分配给数据框的直接方法?
谢谢
答案 0 :(得分:0)
我认为可以在分配之前使用DataFrame
构造函数:
df = pd.DataFrame(columns=['colA', 'colB', 'colC'])
df[["colB","colC"]] = pd.DataFrame(data)
或者如果要添加空列:
data = np.ones((100,2))
df1 = pd.DataFrame(data, columns=["colB","colC"]).reindex(columns=['colA', 'colB', 'colC'])
print (df1.head())
colA colB colC
0 NaN 1.0 1.0
1 NaN 1.0 1.0
2 NaN 1.0 1.0
3 NaN 1.0 1.0
4 NaN 1.0 1.0