Python | pandas 使用 速查

Python

filter 过滤参数

list(filter(lambda s: not s.startswith("_"), list0)) # 对 list 进行过滤,返回符合条件的 结果列表  

#使用 regex 查找并返回有 orders 的 列表item ,返回只有 orders 的列表
#1
regex = re.compile(r'orders.')
ll = list(filter(regex.search, list0))
#2    
ll = list(filter(lambda x:re.findall('orders',x), list0))

数值替换

# 在数据处理过程中用到了除法,并且出现了除数为0,导致出现inf,而数据库不支持写入该值
df_d = df_d.replace([np.inf, -np.inf], 1) # 第一次出现 - 1
df_d = df_d.replace([np.inf, -np.inf], np.nan) # 空值 ,上述代码将处理结果中的正无穷和负无穷都替换为空值,最后写入到数据为中的为null值
df_d.fillna(0)  # 替换 NaN 为 0 

 

读文件

df = pd.read_csv('D:/Temp/XYZ.csv')

写文件

df_r.to_csv()    #写入CSV

插入

DataFrame.insert(loc, column, value, allow_duplicates=False) # 插入一列

jobs = ['student','AI','teacher']
df['job'] = jobs  #默认在df最后一列加上column名称为job,值为jobs的数据

数据类型

print(dataframe.dtypes) #查看column 的数据类型

df["A"]=df["A"].astype("int") # 进行数据表格的数据类型转换需要用到数据类型转换函数df["列名称"].astype("类型名称”)

df_pe['A'] = df_pe['A'].apply(lambda x:x.replace(',','')).astype(float) # 转换有逗号,的数值为 float

df = df.rename( columns={ 'A':'aa', 'C':'cc'  }) # 对Column 重命名

dfr.columns=['A','B']  #rename the datafram column of every column, when we don't know exactly the column name

数据合并

df = pd.merge(df_search,df_pe, on=['col1','col2'], how='outer' , suffixes=('','')) # out join 数据左右连接,suffixes 为合并后的左表和右表的后缀

索引

df.reset_index(drop=False) # False - transform the Index to normal fields, True - Drop the Index

统计

df_f['sum'] = df_f.apply(lambda x: x.sum(), axis=1) # 对所有的agg以后的数值列求和,插入一列

df['sum'] =df['2020-03-30'].add(df['2020-03-31'], fill_value=0)     #按列相加,NaN 的地方 用 0 填充

Reference

Pandas对于CSV的简单操作

python – 在列表中通过正则表达式过滤字符...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章