本文总结了向.:,,loc,obj['col']添加新列的五种方法,并用代码进行了演示。
1. 准备数据
导入所需的包并创建一个新示例
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
2. 方法
使用的方法,第一个参数指定插入列的位置,第二个参数指定插入列的列名,第三个参数指定插入列的数据。 这个方法也是我最喜欢的。
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
3. obj['col'] = value方法
直接赋值给
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
4. 方法
使用该函数,还可以指定值来填充缺失值,但缺点是需要同时添加原始列名和新列名。 如果列名太多的话就比较麻烦。
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
5. 方法
该方法用于拼接数据,这里是利用拼接过程创建一个包含新列名的空白空间。 优点是可以同时添加多个列名。
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方法
loc方法和iloc方法一样,可以对数据建立索引,通常通过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