Pandas

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值