pandas 简单的 excel 处理

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
posted @ 2021-06-22 23:01  wztshine  阅读(612)  评论(0编辑  收藏  举报