Python 之 pandas 模块

Python之pandas模块

只保留需要的列:

df = df[['列1', '列2', '列3']]

新增一列:

df1['列名']=['行1值','行2值','行3值','行4值']   # 增加列的元素个数要跟原数据列的个数一样

指定位置新增一列:

col_name=df1.columns.tolist()       # 将数据框的列名全部提取出来存放在列表里
col_name.insert(2,'city')      # 在列索引为2的位置插入一列,列名为:city,刚插入时不会有值,整列都是NaN
df1=df1.reindex(columns=col_name)              # DataFrame.reindex() 对原行/列索引重新构建索引值`
df1['city']=['行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',model='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数据。

更改dataframe里面时间的格式

data['日期'] = data['日期'].apply(lambda x:datetime.datetime.strftime(x, '%Y-%m-%d'))
posted @ 2022-03-21 10:52  Ivan丶ky  阅读(179)  评论(0)    收藏  举报