Python之pandas模組
阿新 • • 發佈:2022-03-21
只保留需要的列:
df = df[['列1', '列2', '列3']]
新增一列:
df1['列名']=['行1值','行2值','行3值','行4值'] # 增加列的元素個數要跟原資料列的個數一樣
指定位置新增一列:
col_name=df1.columns.tolist() # 將資料框的列名全部提取出來存放在列表裡
col_name.insert(2,'列名') # 在列索引為2的位置插入一列,列名為:city,剛插入時不會有值,整列都是NaN
df1=df1.reindex(columns=col_name) # DataFrame.reindex() 對原行/列索引重新構建索引值
df1['列名']=['行1值','行2值','行3值','行4值'] # 給city列賦值
新增一行:
import pandas as pd
重要!!先建立一個DataFrame,用來增加進資料框的最後一行new=pd.DataFrame({'name':'lisa','gender':'F','city':'北京','age':19,'score':100},index=[1])
- 自定義索引為:1 ,這裡也可以不設定index
df1=df1.append(new,ignore_index=True)
- ignore_index=True,表示不按原來的索引,從0開始自動遞增
更換單值,loc和iloc 可以更換單行、單列、多行、多列的值
[先行,後列]
df1.loc[0,'列名']=25 # 思路:先用loc找到要更改的值,再用賦值(=)的方法實現更換值
df1.iloc[0,2]=25 # iloc:用索引位置來查詢
按某列的值排序
df= df.sort_values(by='列名',ascending=False)
- ascending:false 降序
excel新增Sheet:
import pandas as pd
data = pd.DataFrame()
writer = pd.ExcelWriter('model_predict.xlsx',mode='a', engine='openpyxl',if_sheet_exists='new')
data.to_excel(writer, sheet_name='sheet1')
writer.save()
writer.close()
- model:有兩個引數,{'w', 'a'}, default 'w'。'w'代表write,'a'代表append。不覆蓋原檔案選擇追加使用‘a’。
- engine:現在已有的的寫入excel模組包含openpyxl和xlsxwriter,default 'xlsxwriter',xlsxwriter模組不支援append追加操作,需要追加新的sheet操作選擇'openpyxl'引數,否則會報錯。
- if_sheet_exists:{'error', 'new', 'replace'}, default 'error',寫入的sheet name已存在時程式碼操作,預設'error'表報錯, 'new'表engine自動建立新的其他sheet name, 'replace'表覆蓋原sheet資料。