版权声明:转载注明博主:明天依旧可好;来源: https://blog.csdn.net/qq_38251616/article/details/84450648
文章目录
1. pandas库
1.1 利用pandas包读取CSV文件
import pandas as pd
import os
file_path = os.path.join("test.csv")
data = pd.read_csv(open(file_path,'r',encoding='utf-8'),sep='|')
#定义一个列表来获取name列中的内容
name_list = []
for column,row in data.iterrows():
name_list.append(row['name'])
print(row['name'])
1.2 利用pandas包写CSV文件
#任意的多组列表
a = [1,2,3]
b = [4,5,6]
#字典中的key值即为csv中的列名
data = {'a_name':a,'b_name':b}
#设置DataFrame列的排列顺序
dataFrame = DataFrame(data, columns=['a_name', 'b_name')
#将DataFrame存储为csv,index表示是否显示行名,default=True
dataFrame.to_csv("test.csv",index=False,sep='|')
#如果希望在不覆盖原文件内容的情况下将信息写入文件,可以加上mode="a"
dataFrame.to_csv("test.csv",mode="a",index=False,sep='|')
1.3 修改DataFrame中的某一元素
df['列名'][行序号(index)] = "新数据"
1.4 删除DataFrame中某一行
df.drop([16,17])
1.5 遍历DataFrame数据类型
for index, row in df.iterrows():
print(row["column"])
1.6 合并DataFrame数据类型
谈到pandas数据的行更新、表合并等操作,一般用到的方法有concat、join、merge。
这里就介绍concat方法,以下是函数原型。
pd.concat(objs, axis=0, join=‘outer’, join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False)
参数说明 :
objs: series,dataframe或者是panel构成的序列lsit
axis: 需要合并链接的轴,0是行,1是列
join:连接的方式 inner,或者outer
其他一些参数不常用,用的时候再补上说明。
1.6.1 相同字段的表首尾相接
# 现将表构成list,然后在作为concat的输入
In [4]: frames = [df1, df2, df3]
In [5]: result = pd.concat(frames)
1.6.2 横向表拼接(行对齐)
1.6.2.1 axis
当axis = 1的时候,concat就是行对齐,然后将不同列名称的两张表合并
In [9]: result = pd.concat([df1, df4], axis=1)
1.6.2.2 join
扫描二维码关注公众号,回复:
4242854 查看本文章
加上join参数的属性,如果为’inner’得到的是两表的交集,如果是outer,得到的是两表的并集。
In [10]: result = pd.concat([df1, df4], axis=1, join='inner')
更完整的介绍见:PANDAS 数据合并与重塑(concat篇)
2. CSV库
2.1 以行为单位向csv文件写入数据
def writer_file(file, row):
with open(file,'a+',encoding='utf-8',newline='') as csvfile:
spamwriter = csv.writer(csvfile,delimiter='|',quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(row)
3. 正则表达式
3.1 匹配中文并返回匹配对象
cn = re.search(u"[\u4e00-\u9fa5]+", row["CnName"], 0).group()
4. 字符串
4.1 判断字符串是否为字母或者数字(浮点数)
str.isalnum() 所有字符都是数字或者字母
str.isalpha() 所有字符都是字母
str.isdigit() 所有字符都是数字
str.isspace() 所有字符都是空白字符、\t、\n、\r
4.2 统计字符串里某个字符出现的次数
'1,2,3'.count(',')
>>>2