引入需用的包,并新建DataFrame例子
in [1]: import pandas as pd import numpy as np in [2]: data = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['a', 'b', 'c']) in [3]: data out[3]: a b c 0 1 2 3 1 4 5 6 2 7 8 9
使用 pandas 的 insert 方法,第一个参数指定插入列的位置,第二个参数指定插入列的列名,第三个参数指定插入列的数据,这个方法也是我比较推崇的。
in [4]: data.insert(data.shape[1], 'd', 0) in [5]: data out[5]: a b c d 0 1 2 3 0 1 4 5 6 0 2 7 8 9 0
直接对 DataFrame 直接赋值即可
in [6]: data['d'] = 0 in [7]: data out[7]: a b c d 0 1 2 3 0 1 4 5 6 0 2 7 8 9 0
使用 reindex 函数,还可以指定缺失值填充的值,不过缺点是要把原有的列名和新列名都加上,如果列名过多,那就比较麻烦了。
in [8]: data = data.reindex(columns=['a', 'b', 'c', 'd'], fill_value=0) in [9]: data out[9]: a b c d 0 1 2 3 0 1 4 5 6 0 2 7 8 9 0
concat 方法是用来拼接数据的,在这里是利用拼接过程中新建一个包含新列名的空DataFrame,好处是可以同时新增多个列名。
in [10]: data = pd.concat([data, pd.DataFrame(columns=['d'])], sort=False) in [11]: data out[11]: a b c d 0 1.0 2.0 3.0 NaN 1 4.0 5.0 6.0 NaN 2 7.0 8.0 9.0 NaN
loc 方法和 iloc 方法一样,可以索引 DataFrame 数据,一般是通过 data.loc[index, col] = value
来进行赋值,这里利用:来索引全部行再进行赋值。
in [12]: data.loc[:, 'd'] = 0 in [13]: data out[13]: a b c d 0 1 2 3 0 1 4 5 6 0 2 7 8 9 0
参考:https://blog.csdn.net/qq_35318838/article/details/102720553