引入需用的包,並新建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
親測可用 DataFrame 新增列的五種方法
本文總結了平時對 pandas.dataframe 進行新增列操作的五種方法 insert reindex loc obj col concat,並用 演示出來。引入需用的包,並新建dataframe例子 in 1 import pandas as pd import numpy as npin 2...
dataframe新增行索引的方法
dataframe 新增行的方法 1 通過loc函式新增,必須要知道行index,相同的index會覆蓋 df1 pd.dataframe 1,1 2,2 columns a b df1.loc 3 字典新增,與列名相同賦值,其他的值忽略 df1.loc df1.shape 0 1 5,5 在最後一...
dataframe中更改列屬性的方法
在讀取檔案時將整數變數讀成了字串,或者需要轉換列屬性時,通過方法 astype 舉例 dataframe.numbers dataframe.numbers.astype float province.id province.id.astype str 舉例 data read.csv data.c...