一种方法是使用[:]对所有列进行赋值,并使用iloc[:,[1]]选择{}保持列格式-df[:] = df.iloc[:,[1]] # Or df[['1']] if column names are in
# string sequence from 0 as suggested by @piRSquared
样本运行-
^{pr2}$
处理混合数据类型数据帧
如果您处理的是混合数据类型列,即并非所有列都与column-1具有相同的数据类型,那么我们需要使其成为相同的数据类型,而这样做的一种方法是将所有列转换为'object'dtype。然后,我们可以使用前面建议的方法。因此,转换和分配步骤将是-df = df.astype('object')
df[:] = df.iloc[:,[1]]
样本运行-In [267]: df = pd.DataFrame(index=range(5), columns=range(10))
...: S = pd.Series(np.random.randint(0,9,(18)))
...: df[1] = S
...:
In [268]: df
Out[268]:
0 1 2 3 4 5 6 7 8 9
0 NaN 3 NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN 3 NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN 1 NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN 0 NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN 6 NaN