解析的csv文件如下:
csv文件所在位置:~/Desktop/mycsv.csv
- 导入包
import pandas as pd
import os
- 读取csv文件
df = pd.read_csv('~/Desktop/mycsv.csv', encoding='utf-8',index_col=0,dtype=str)
print("csv文件初始内容:\n",df)
输出内容如下:
S137005023-Mac:~ xyt$ python3 '/Users/xyt/Desktop/testNote/csvPart.py'
csv文件初始内容:
stuID score
studentName
stu1 1 100
stu2 2 90
stu3 3 80
- 删除行
# csv头部第一个元素为name 即 studentName,删除studentName为stu1的行
df.drop('stu1', axis=0, inplace = True)
print("删除后数据:\n",df)
输出内容如下:
删除后数据:
stuID score
studentName
stu2 2 90
stu3 3 80
打印剩余数据
for index in range(len(df)):
print("data.iloc[",index,"].name==>",df.iloc[index].name)
print("data.iloc[",index,"].score==>",df.iloc[index].score)
输出如下:
data.iloc[ 0 ].name==> stu2
data.iloc[ 0 ].score==> 90
data.iloc[ 1 ].name==> stu3
data.iloc[ 1 ].score==> 80
- 添加行
obj_series_dict=pd.Series({'stuID':'4','score':'95'})
print("--------------\nseries 待插入数据:")
print(obj_series_dict,'\n--------------')
obj_series_dict.name = 'stu4'
#插入数据
df = df.append(obj_series_dict)
print("拼接后数据: ")
print(df,'\n--------------')
输出内容如下:
--------------
series 待插入数据:
stuID 4
score 95
dtype: object
--------------
拼接后数据:
stuID score
studentName
stu2 2 90
stu3 3 80
stu4 4 95
--------------
- 存储csv文件
# 文件不存在时创建文件(目录必须已存在)
pa = os.path.join(os.getcwd(),"Desktop/newFile.csv")
print("拼接后path==> ",pa) # /Users/xyt/Desktop/newFile.csv
# 判断路径是否存在
# if not os.path.exists(path):
# 创建目录
# os.makedirs(path)
# 目录必须已存在
df.to_csv(pa, encoding='utf-8')
最后生成文件如下:
- 重新拼接
beforeTwo = df[0:2]
print("beforeTwo---\n",beforeTwo)
lastOne = df[len(df)-1:]
print("lastOne---\n",lastOne)
newCSVData = lastOne.append(beforeTwo)
pa = os.path.join(os.getcwd(),"Desktop/newFile.csv")
newCSVData.to_csv(pa, encoding='utf-8')
输出内容如下:
beforeTwo---
stuID score
studentName
stu2 2 90
stu3 3 80
lastOne---
stuID score
studentName
stu4 4 95
生成文件如下:
7. 删除列
newCSVData.drop('stuID', axis=1,inplace=True)
# newCSVData.drop(['stuID','score'], axis=1,inplace=True)
效果如下: