1. 程式人生 > 其它 >Python之pandas模組

Python之pandas模組

只保留需要的列:

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資料。