Pandas简单常用方法
表格:
import numpy as np
import pandas as pd
### 读取excel的两种方法
# 方法1
df = pd.read_excel('demo.xlsx')
print(df.head(2)) # 读取前2条数据
# 方法2
df1 = pd.read_excel('企业信息模板表.xlsx', sheet_name='Sheet1')
print(df1.head()) # 默认读取前5条数据
# 方法3
df2 = pd.read_excel('demo.xlsx', sheet_name=0, header=0)
print(df2.head(5))
### pandas常用操作
# 查询列
print(df.columns[3])
# 查询行
print(df.index[2])
# 读取所有姓名
print(df['姓名'].values)
# 读取麻子的信息
print(df.iloc[3])
# 获取年龄大于22的姓名
print(df.loc[df['年龄'] >= 22])
# 获取麻子的联系电话
num = df[df['姓名'].isin(['麻子'])] # 获取行号
mobile = df.iloc[[3],[4]].values
print(mobile[0][0])
# 获取索引当df['xxx']不好用时
#df = pd.read_excel(r'C:\Users\Administrator\Desktop\备份\202009工业产值小册子-D.xls', sheet_name='产值效益',dtype='object')
# 获取索引
num = df[df.iloc[:,0].isin(['出口交货值'])].index.tolist()[0]
# 取值
data = df.iloc[[num],[3]].values
Log.Info(self,data)
# 获取某一列数据 2
print(df['姓名']) # 添加 .values 会将其转为列表
# 获取姓名,年龄 列所有数据
print(df[['姓名', '年龄']])
# 获取姓名到手机之间的行所有数据
print(df[1:3])
#### 获取某一行或多行
# 获取第二行的数据
print(df.loc[1].values) # 添加.values 会将其转为列表
# 获取多行的数据
print(df.loc[1:5])
# 获取指定行的数据
print(df.iloc[1].values) # 效果同xx.loc[1].values
# 根据行标签,筛选行和列
# 获取年龄到练习电话的所有数据
# 使用格式 : df.[列索引起始:列所有结束 ,行索引起始:行索引结束]
print(df.loc[:,'姓名':'练习电话'])# 添加.values 会将其转为列表
# 筛选行
# 获取1到5行的所有数据
print(df.loc[1:5,:])
# 获取2到3行的姓名~练习电话
print(df.loc[1:3,'姓名':'练习电话'])
### 筛选数据 条件筛选
# 年龄大于等于 22 的所有信息
print(df[df["年龄"] >= 22])
# 年龄大于20 小与24 的信息 '&' 同时满足成立
print(df[(df['年龄']>= 20) & (df['年龄']<=22)])
# 年龄大于23 或者 职位 是测试的 '\' 满足任意条件即成立
print(df[(df['年龄'] >23) | (df['职位'] == '测试')])
# 将每行的年龄与练习电话相加
# 取出单行的姓名
datas = df.loc[:,['年龄','练习电话']].values
print(datas)
for i in datas:
print('合:{}'.format(i[0] + i[1]))
# 修改麻子为小芳,并另存为ceshi.xlsx
df.iloc[[3], [1]] = '小强'
df.to_excel('ceshi.xlsx', index=None)
`