pandas用法
#读取excel(keep_default_na为去除空值,dtype={a:str,b:int}指定格式)
get_data = pd.read_excel(path,sheetname="sheet名",keep_default_na=False,dtype=str).values
print(get_data)
pandas操作数据的方法
df.T #行列反转
df.describe() #获取df统计数据
df.info() #获取df信息
df.head(5) #返回前5行数据
df.tail() #返回最后5行数据
df.index #获取全部索引
df.columns #获取所有列名
df.shape #获取几行几列
df.type #返回每一列数据分别是什么类型
df.loc["",""] 或 data.loc[["",""]] #取行--也可以用索引取
df.loc[["开始行":"结束行"]] #取开始到结束行这个范围
df[""] 或 data."列名" #取列
df.loc["行","列"] #取对应行列值--也可用索引取值
df.neme="qzk" #取name列为qzk的数据
df[""]=[1,2,3] #插入一列
df.dropna(axis=1,how="all") #有缺失值就删除整列,how的用法是既有缺失值又有数值,则保留
df.fillna(values=0) #缺失值替换为0
df.concat([df1,df2],ignoer_index=True) #垂直合并,ignoer_index初始化索引
df.concat([df1,df2],axis=1) #水平合并
df.append([],ignoer_index=True) #添加
rows = len(df_1['PN码'].dropna(how='all')) # 读取非空字段的行数
# 根据列的对应值查询另一列的值
self.df_system.loc[(self.df_system['列名'].apply(
lambda x: x.upper().strip().replace(' ','')) == ships_name.upper().strip().replace(' ','')), "要查询的列名"].values[0]
pandas 匹配选择数据
df_1[‘商品名称*’][i] = df_2.loc[df_2[‘PN码’].apply(lambda x:x.upper()) == df_1[‘PN码’][i].upper().strip(), “开票子类”].values[0]
pandas运算
df1+df2 #行列相同时
df1.add(df2,fill_value=0) #df2行列不相同自动填充
pandas创建日期
pd.date_range(start="2020-01-01",periods=6) #生成从01日到往后6天日期
pandas读取表格
#usecols为读取的列 ,dtype=str为以字符串
pd.read_excel(path,usecols=[0,1,7,8],dtype=srt).values
pd.to_excel(path) #生成Excel文件,path为路径
#读取表格有日期['日期']为日期列
df = pd.read_excel(path)
df = pd.to_datetime((df['日期'] -25569)*86400.0,unit='s')
生成DataFrame
pd.DataFrame({"ID":"值","NAME":"值"})
pd[["ID","NAME","SEX"]] #生成固定列名
pd.DataFrame(sheet_data,columns=sheet_data)
df = pd.DataFrame(np.random.randint(0,10,(6,4),index=["","","","","",""],columns=["","","",""])) #创建6行4列的数据
df.describe() #返回DataFrame的统计数据
df.sore_index(axis=0,ascending=False) #排序(axis=0,列从小到大)(ascending=False,行从小到大)
df.sore_index("列名") #按照列名排序
两表匹配相同数据、分组
pd.merge(df1,df2)
pd.merge(data_1,data_2,left_on="data_1列名",right_on="data_2列名")
pd.groupby("name").sum() #groupby分组,sum分组求和
pd.groupby("name").mean() #分组均值
gp=df.groupby(by=['A','B']) # 分组
gp.size() # 查看分组详情
gp.size().index # 查看分组头信息
gp.size().values # 查看分组统计的值
数据透视表
pd.pivot_table("所查看表头",index="显示作为行的表头"columns="显示为列的表头")
修改列名
data.rename({"1":"a","2":"b"}) #1改为a
处理列日期时间
#DateTime为列名,unit设置毫秒
df["DataTime"] = pd.to_datatime(df["DataTime"],unit="ms",origin=pd.Timestamp("1970-01-01 08:00:00"))
import numpy as np
import pandas as pd
导入数据表
df=pd.DataFrame(pd.read_csv('name.csv',header=1))
df=pd.DataFrame(pd.read_excel('name.xlsx'))
创建数据表
df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],
"date":pd.date_range('20130102', periods=6),
"city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
"age":[23,44,54,32,34,32],
"category":['100-A','100-B','110-A','110-C','210-A','130-F'],
"price":[1200,np.nan,2133,5433,np.nan,4432]},
columns =['id','date','city','category','age','price'])
数据维度(行列)
#查看数据表的维度(shape查看行列数)
df.shape
#输出
(6, 6)
https://www.cnblogs.com/nxld/p/6756492.html
https://blog.csdn.net/yiyele/article/details/80605909