pandas 使用insert插入一列
把value插入dataframe的指定位置loc中,若插入的數(shù)據(jù)value已在DataFrame中,則返回 錯誤ValueError,如想完成重復(fù)值的插入需要把allow_duplicates設(shè)置為True
insert方法詳解
DataFrame.insert(loc, column, value, allow_duplicates=False)
參數(shù):
Raises a ValueError if column is already contained in the DataFrame, unless allow_duplicates is set to True.
Parameters:
loc :參數(shù)column插入的位置,如果想插入到第一例則為0,取值范圍: 0 <= loc <= len(columns),其中l(wèi)en(columns)為Dataframe的列數(shù)
column :給 插入數(shù)據(jù)value取列名,可為數(shù)字,字符串等
value :可以是整數(shù),Series或者數(shù)組等
allow_duplicates : 默認(rèn) False
1.創(chuàng)建數(shù)據(jù)
import pandas as pd
import numpy as np
data = {
'school' : ['北京大學(xué)', '清華大學(xué)', '山西大學(xué)', '山西大學(xué)', '武漢大學(xué)'],
'name' : ['江路離', '沈希夢', '來使鷺', '陳曦冉', '姜浩然'],
'No.' : [20001943, 300044451, 20190006, 20191234, 1242522]
}
# data = list(data) <-> data = list(data.keys)
# data = list(data.values())
frame = pd.DataFrame(data)
print(frame)
結(jié)果:

2.插入數(shù)據(jù)
frame.insert(0, 'num', np.ones(5)) print(frame)
結(jié)果:

frame.insert(len(frame.columns), 'list', [x for x in range(5)]) print(frame)

3.插入已存在數(shù)據(jù)
結(jié)果:

4.把allow_duplicates設(shè)置為True,可實現(xiàn)重復(fù)值的插入
frame.insert(0, 'num', np.ones(5), allow_duplicates=True) print(frame)

補充:pandas 中的insert(), pop()在DataFrame的指定位置中插入某一列
在pandas中,del、drop和pop方法都可以用來刪除數(shù)據(jù),insert可以在指定位置插入數(shù)據(jù)。
可以看看以下示例。
import pandas as pd
from pandas import DataFrame, Series
data = DataFrame({'name':['yang', 'jian', 'yj'], 'age':[23, 34, 22], 'gender':['male', 'male', 'female']})
#data數(shù)據(jù)
'''
In[182]: data
Out[182]:
age gender name
0 23 male yang
1 34 male jian
2 22 female yj
'''
#刪除gender列,不改變原來的data數(shù)據(jù),返回刪除后的新表data_2。axis為1表示刪除列,0表示刪除行。inplace為True表示直接對原表修改。
data_2 = data.drop('gender', axis=1, inplace=False)
'''
In[184]: data_2
Out[184]:
age name
0 23 yang
1 34 jian
2 22 yj
'''
#改變某一列的位置。如:先刪除gender列,然后在原表data中第0列插入被刪掉的列。
data.insert(0, '性別', data.pop('gender'))#pop返回刪除的列,插入到第0列,并取新名為'性別'
'''
In[185]: data
Out[186]:
性別 age name
0 male 23 yang
1 male 34 jian
2 female 22 yj
'''
#直接在原數(shù)據(jù)上刪除列
del data['性別']
'''
In[188]: data
Out[188]:
age name
0 23 yang
1 34 jian
2 22 yj
'''
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Python 序列化和反序列化庫 MarshMallow 的用法實例代碼
marshmallow(Object serialization and deserialization, lightweight and fluffy.)用于對對象進行序列化和反序列化,并同步進行數(shù)據(jù)驗證。這篇文章主要介紹了Python 序列化和反序列化庫 MarshMallow 的用法實例代碼,需要的朋友可以參考下2020-02-02
odoo?為可編輯列表視圖字段搜索添加查詢過濾條件的詳細過程
Odoo 是基于 Python 寫的一系列開源商業(yè)應(yīng)用程序套裝,前身是 OpenERP,這篇文章主要介紹了odoo?為可編輯列表視圖字段搜索添加查詢過濾條件,需要的朋友可以參考下2023-02-02
使用Python字典實現(xiàn)詞頻統(tǒng)計的方法
在Python中,利用字典進行詞頻統(tǒng)計是一種常見且強大的方式,通過對文本進行預(yù)處理并使用字典數(shù)據(jù)結(jié)構(gòu),可以輕松地統(tǒng)計文本中每個單詞出現(xiàn)的頻率,下面將詳細解釋這個過程,并提供多種例子,以幫助你更好地理解并應(yīng)用這一技術(shù),需要的朋友可以參考下2023-12-12
Python輕松獲取網(wǎng)絡(luò)時間和本地時間技巧揭秘
這篇文章主要為大家介紹了Python輕松獲取網(wǎng)絡(luò)時間和本地時間技巧揭秘,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01

