Python学习中的点点滴滴

版权声明:转载注明博主:明天依旧可好;来源: 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

猜你喜欢

转载自blog.csdn.net/qq_38251616/article/details/84450648