dataframe 新增列方法

2021-10-24 16:48:30 字數 1662 閱讀 4817

引入需用的包,並新建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...