【Numpy/Pandas】使用numpy和pandas库对excel和csv文件进行增删改查

代填的坑

一、Pandas库对Excel文件进行增删改查

1、导入库

import pandas as pd
import numpy as np
import xlwt
import xlrd

2、读Excel文件内容

# 读
df1 = pd.DataFrame(pd.read_excel('MyExcel.xls'))
print(df1)

MyExcel文件打开后如下:
在这里插入图片描述
终端输出如下:
在这里插入图片描述

3、写Dataframe

# 写入
df = pd.DataFrame({
    
    "id": [1001, 1002, 1003, 1004, 1005, 1006],
                   "date": pd.date_range('20130102', periods=6),
                   "city": ['Zhengzhou', 'KF', 'SH', 'TJ', 'Beijing', 'HN'],
                   "age": [1, 2, 3, 4, 5, 6],
                   "category": ['100-A', '100-B', '110-A', '110-B', '110-C', '222-P'],
                   "price": [1200, np.nan, 2133, 2312, np.nan, 2223]},
                  columns=["id", "date", "city", "age", "category", "price"])
print(df)

终端输出:
在这里插入图片描述

4、改

# 修改 不修改原来的Excel文件 这里修改的是我创建的df
# df['id'][0] = 2333  # 会报错:SettingWithCopyWarning
df.loc[0, 'id'] = 2333   # 行-列
df.loc[4, 'age'] = 18
# df['price'][2] = 8888
df.iloc[0, 5] = 8888  # 行-列
print(df)

终端输出:
在这里插入图片描述

5、增【增加列部分有疑问】

个体:

# 增加个体
df.loc[999, 'age'] = 555  # 行不存在 列存在 创建行
df.loc[333, '5'] = 222  # 行不存在 列不存在 创建行列
df.loc[3, 'try'] = 111  # 行存在 列不存在 创建列
print(df)

终端输出:
在这里插入图片描述
行数据:

# 行数据
df.loc[8888] = [1, 2, 3, 4, 5, 6]
# df.iloc[6] = [3, 3, 3, 3, 2, 2]  # 用iloc无法生成 只能修改
print(df)

在这里插入图片描述
列数据:

# 列数据
# 【疑问】为什么只能生成到6.0
df['增加列'] = pd.Series([1, 2, 3, 4, 5, 6, 7], index=np.arange(0, 7))
print(df)

在这里插入图片描述

6、删除

1、删除列

# 指定列 用axis=1
df = df.drop('age', axis=1)
print(df)

在这里插入图片描述
2、删除行

# 指定行 用axis=0
df = df.drop(3, axis=0)
print(df)

在这里插入图片描述

7、保存

# 保存
pd.DataFrame(df).to_excel('test01.xls', sheet_name="MySheet", index=False, header=True)

在这里插入图片描述

完整代码:

import pandas as pd
import numpy as np
import xlwt
import xlrd

df1 = pd.DataFrame(pd.read_excel('MyExcel.xls'))
print(df1)

# 修改值,但不修改原理的Excel文件
# df[2][1] = "哈哈哈"
# df[6][2] = "我真棒"
# print(df)

# 写入
df = pd.DataFrame({
    
    "id": [1001, 1002, 1003, 1004, 1005, 1006],
                   "date": pd.date_range('20130102', periods=6),
                   "city": ['Zhengzhou', 'KF', 'SH', 'TJ', 'Beijing', 'HN'],
                   "age": [1, 2, 3, 4, 5, 6],
                   "category": ['100-A', '100-B', '110-A', '110-B', '110-C', '222-P'],
                   "price": [1200, np.nan, 2133, 2312, np.nan, 2223]},
                  columns=["id", "date", "city", "age", "category", "price"])
print(df)

# 修改 不修改原来的Excel文件
# df['id'][0] = 2333  # 会报错:SettingWithCopyWarning
df.loc[0, 'id'] = 2333   # 行-列
df.loc[4, 'age'] = 18
# df['price'][2] = 8888
df.iloc[0, 5] = 8888  # 行-列
print(df)

# 增加
# 增加个体
# df.loc[999, 'age'] = 555  # 行不存在 列存在 创建行
# df.loc[333, '5'] = 222  # 行不存在 列不存在 创建行列
# df.loc[3, 'try'] = 111  # 行存在 列不存在 创建列
# print(df)
# 行数据
df.loc[8888] = [1, 2, 3, 4, 5, 6]
# df.iloc[6] = [3, 3, 3, 3, 2, 2]  # 用iloc无法生成 只能修改
print(df)
# 列数据
# 【疑问】为什么只能生成到6.0
df['增加列'] = pd.Series([1, 2, 3, 4, 5, 6, 7], index=np.arange(0, 7))
print(df)

# 删除
# 指定列 用axis=1
df = df.drop('age', axis=1)
print(df)
# 指定行 用axis=0
df = df.drop(3, axis=0)
print(df)

# 保存
pd.DataFrame(df).to_excel('test01.xls', sheet_name="MySheet", index=False, header=True)

二、Pandas库对Csv文件进行增删改查

pandas——对csv文件进行增加列、删除列、删除行、修改、查找重复等系列操作
pandas——对csv文件进行增加列、删除列、删除行、修改、查找重复等系列操作
pandas对CSV文件数据操作增删改查

1、创建Csv文件

1.1 用记事本创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是用Excel打开会乱码

1.2 用Excel表创建

点击另存为
在这里插入图片描述
不会乱码!!

2、增删改查

pandas的to_csv()使用方法
pandas——对csv文件进行增加列、删除列、删除行、修改、查找重复等系列操作

猜你喜欢

转载自blog.csdn.net/weixin_43232564/article/details/108082996