溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python向DataFrame中指定位置添加一列或多列的方法

發(fā)布時間:2020-10-05 00:40:07 來源:腳本之家 閱讀:3867 作者:象在舞 欄目:開發(fā)技術

對于這個問題,相信很多人都會很困惑,本篇文章將會給大家介紹一種非常簡單的方式向DataFrame中任意指定的位置添加一列。

在此之前或許有不少讀者已經了解了最普通的添加一列的方式,如下:

import pandas as pd
 
feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1])
feature.columns = ["a","b"]
print(feature.head())
feature['c']='1'
print(feature.head())

這種添加方式得到的結果如下:

     a     b
0 4.459256 8.225418
1 0.043276 6.307400
2 6.997162 9.313393
3 4.754832 9.260378
4 8.661904 9.767977
     a     b c
0 4.459256 8.225418 1
1 0.043276 6.307400 1
2 6.997162 9.313393 1
3 4.754832 9.260378 1
4 8.661904 9.767977 1

同樣的也會有人想到concat()函數(關于concat()函數的更多介紹,可以參考我的另外一篇博客《在Pandas中DataFrame數據合并、連接(concat、merge、join)的實例》),如下:

import pandas as pd
 
feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1])
feature.columns = ["a","b"]
print(feature.head())
feature = pd.concat([feature, pd.DataFrame(columns=list('c'))])
print(feature.head())

利用concat()函數添加的結果如下:

     a     b
0 4.459256 8.225418
1 0.043276 6.307400
2 6.997162 9.313393
3 4.754832 9.260378
4 8.661904 9.767977
     a     b  c
0 4.459256 8.225418 NaN
1 0.043276 6.307400 NaN
2 6.997162 9.313393 NaN
3 4.754832 9.260378 NaN
4 8.661904 9.767977 NaN

上述兩種方法添加一列存在一個弊端,那就是只能在DataFrame的末尾即最后一列添加。但是在有些情況下,我們需要在DataFrame的第一列或中間列位置添加新的一列,那么,有沒有一種方法可以指定位置添加一列呢?答案是肯定的,這就是本文一開始所說的那種及其簡單的方法。

如下:

import pandas as pd
 
feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1])
feature.columns = ["a","b"]
print(feature.head())
feature = feature.reindex(columns=list('cab'), fill_value=1)
print(feature.head())

上面代碼中的使用了reindex()方法,reindex()方法可以添加一列或多列數據,并且可以指定列的位置,也可以對原先存在的列進行重排。方法中的columns屬性控制著列的位置,c是添加的一列,其位于a和b前面,這說明c列是新數據框的第一列,fill_value屬性指定的是添加一列的值,其結果如下:

     a     b
0 4.459256 8.225418
1 0.043276 6.307400
2 6.997162 9.313393
3 4.754832 9.260378
4 8.661904 9.767977
  c     a     b
0 1 4.459256 8.225418
1 1 0.043276 6.307400
2 1 6.997162 9.313393
3 1 4.754832 9.260378
4 1 8.661904 9.767977

同時,reindex()方法也可以同時添加多列(其實上面的concat()函數也可以添加多列,添加方式與reindex()一樣),如下:

import pandas as pd
 
feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1])
feature.columns = ["a","b"]
print(feature.head())
feature = feature.reindex(columns=list('cabd'), fill_value=1)
print(feature.head())

我們添加了c、d兩列,結果如下:

     a     b
0 4.459256 8.225418
1 0.043276 6.307400
2 6.997162 9.313393
3 4.754832 9.260378
4 8.661904 9.767977
  c     a     b d
0 1 4.459256 8.225418 1
1 1 0.043276 6.307400 1
2 1 6.997162 9.313393 1
3 1 4.754832 9.260378 1
4 1 8.661904 9.767977 1

你們在此過程中遇到了什么問題,歡迎留言,讓我看看你們都遇到了哪些問題。

以上這篇使用Python向DataFrame中指定位置添加一列或多列的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI