python中列的分解、增加、刪除

問題:原來數據是score列包含三列,修整列,並把列分開並替換原列

代碼:

p=pd.DataFrame({'gender':[' M',' M ',' F ','  M','F'],
               'name':['jack','tom','marry','zack','heheda'],
               'socre':['90,90,90','89,88,87','90,90,90','78,78,78','60,60,60']})
print(p)
gender    name     socre

0 M jack 90,90,90
1 M tom 89,88,87
2 F marry 90,90,90
3 M zack 78,78,78
4 F heheda 60,60,60

p['gender']=p['gender'].str.strip()
print(p)

gender name socre
0 M jack 90,90,90
1 M tom 89,88,87
2 F marry 90,90,90
3 M zack 78,78,78
4 F heheda 60,60,60

p['name']=p['name'].str.upper()
print(p)

gender name socre
0 M JACK 90,90,90
1 M TOM 89,88,87
2 F MARRY 90,90,90
3 M ZACK 78,78,78
4 F HEHEDA 60,60,60

p['english']=p['socre'].str.split(',').str.get(0)
p['math']=p['socre'].str.split(',').str.get(1)
p['art']=p['socre'].str.split(',').str.get(2)
p.drop('socre',axis=1, inplace=True)
print(p)

gender name english math art
0 M JACK 90 90 90
1 M TOM 89 88 87
2 F MARRY 90 90 90
3 M ZACK 78 78 78
4 F HEHEDA 60 60 60

增加

# (index,column name,value)
df.insert(index,'columnname',list)
df.insert(0,'add',1)

刪除

刪除pandas DataFrame的某一/幾列:
方法一:直接del DF[‘column-name’]
方法二:採用drop方法,有下面三種等價的表達式:

1. DF= DF.drop('column_name', 1);

2. DF.drop('column_name',axis=1, inplace=True)

3. DF.drop([DF.columns[[0,1, 3]]], axis=1,inplace=True)   # Note: zero indexed

注意:凡是會對原數組作出修改並返回一個新數組的,往往都有一個 inplace可選參數。如果手動設定爲True(默認爲False),那麼原數組直接就被替換。也就是說,採用inplace=True之後,原數組名(如2和3情況所示)對應的內存值直接改變;而採用inplace=False之後,原數組名對應的內存值並不改變,需要將新的結果賦給一個新的數組或者覆蓋原數組的內存位置(如1情況所示)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章