欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年01月29日 10:40:20   作者:象在舞  
今天小編就為大家分享一篇使用Python向DataFrame中指定位置添加一列或多列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

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

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

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())

這種添加方式得到的結(jié)果如下:

     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

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

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()函數(shù)添加的結(jié)果如下:

     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

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

如下:

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()方法可以添加一列或多列數(shù)據(jù),并且可以指定列的位置,也可以對(duì)原先存在的列進(jìn)行重排。方法中的columns屬性控制著列的位置,c是添加的一列,其位于a和b前面,這說明c列是新數(shù)據(jù)框的第一列,fill_value屬性指定的是添加一列的值,其結(jié)果如下:

     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

同時(shí),reindex()方法也可以同時(shí)添加多列(其實(shí)上面的concat()函數(shù)也可以添加多列,添加方式與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兩列,結(jié)果如下:

     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

你們?cè)诖诉^程中遇到了什么問題,歡迎留言,讓我看看你們都遇到了哪些問題。

以上這篇使用Python向DataFrame中指定位置添加一列或多列的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論