pandas Excel简单的操作
读写excel,csv
a.xlsx
Title | name | age | Time |
---|---|---|---|
ti1 | wang | 23 | 2021/2/2 22:24 |
ti2 | zhang | 33 | 2021/2/2 22:24 |
示例:
import pandas as pd
# 读取excel时,会将第一行数据,当作列名
df = pd.read_excel('../a.xlsx')
df2 = pd.read_csv('../a.csv')
# 打印时,左侧会多一列数字,是自动生成的索引
print(df)
# 写入excel
df.to_excel('b.xlsx', index=False)
df.to_csv('b.csv',index=False)
打印结果:
Title name age Time
0 ti1 wang 23 2021-02-02 22:24:00
1 ti2 zhang 33 2021-02-02 22:24:00
数据维度:数据有几行几列
# 查看数据的维度:几行几列
row,col = df.shape
print(row,col) # 2 4;即2行4列
数据排序
# 按照 Title列升序,name列降序,进行排序
df = df.sort_values(by=["Title","name"],ascending=[True,False])
# 重置索引,有需要的话可以重置一下,因为排序完成后,索引也被打乱了
df.index = list(range(df.shape[0]))
获取某列数据
# 通过df[列名],可以获取某列的数据
col1 = df["Title"]
print(col1)
结果:
0 ti1
1 ti2
遍历,赋值,判断是否为空
# 遍历某列数据;iat 可以获取某个位置的数据
for i in range(df["Title"].shape[0]): # shape[0]也就是行数
print(df["Title"].iat[i])
# 给某个位置赋值
df['Title'].iat[i] = 1
# 判断某个数据是否为空值: pd.isna()
if pd.isna(df["Title"].iat[i]):
print("This item is None.")
数据类型转换
# 将某列转换成时间格式
df["Time"] = pd.to_datetime(df["Time"])
# 将某列转换成字符串
df["age"] = df["age"].astype(str)
数据去重
# 获取某列不重复的值
print(df["Title"].unique())
过滤筛选
# 过滤数据,过滤 Title 为 ti1 的所有数据行
print(df[df["Title"] == "ti1"])
手动生成数据,写入excel
data = {
"Name":["wang","zhang"], # 键值对,键作为列名,会写入excel第一行,值作为每行的数据
"age":[22,23]
}
df = pd.DataFrame(data=data)
df.to_excel('b.xlsx',index=False)
生成的:b.xlsx
Name | age |
---|---|
wang | 22 |
zhang | 23 |