python 表格处理 —— pandas

pandas 表格数据处理,唰唰唰…

Data frame

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import pandas as pd

# 数据框转制
dat = dat.T

# 根据列进行合并
dat = pd.merge(dat1, dat2,
on='col', # col在两个数据框中同时存在时,设置on
left_on='col1', right_on='col2', # 两个列名不同时存在,分贝设置合并列名
left_index=False, right_index=False, # 使用df的index进行合并
how='outdir') # {'left', 'right', 'outer', 'inner'}

# concat 合并列数据
dat = pd.concat(dflst,
axis=1, # 左右合并
join='outer') # {'inner', 'outer'}
# concat 行追加
dat = pd.concat(dflst, axis=0, ignore_index=True)

# 删除数据框行或者列
dat = dat.drop(col_lst, axis=1) # 删除 列
dat = dat.drop(index_lst, axis=0) # 删除 行
dat = dat.drop_duplicates() # 删除 重复行
dat = dat.dropna(axis=0, # 0,1 0表示行,1表示列
how='all') # {'any', 'all'}, all表示删除所有值缺失,any表示删除任意一个值缺失

# 长表格 ==> 宽表格转换
import numpy as np
dat = pd.pivot_table(df, index=["Product"], # 设置保留字段
columns=['Year'], # 扩展列
values=["Price"], # 选定列对应数值
aggfunc=[np.sum], fill_value=0) # 设置数据合并的具体操作

# 宽表格 ==> 长表格转换
df = df.melt(id_vars=["Name","Product"], # 保留的主字段
var_name="Year", # 分类名
value_name="Price") # 变量名

read table

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import pandas as pd

dat = pd.read_table('data.csv',
sep='\t', # 设置表格分隔符,read_table默认为‘\t’,read_csv默认为‘,’
index_col=0, # 使用第1列作为数据框index,默认range(0, num_line)作为index
header=None, # 表示文件不存在表头,默认第一行为表头
names=['a', 'b', '']) # 表头不存在时,添加表头为...
# dat = pd.read_csv(...)
dat = pd.read_excel('data.xlsx',
sheet_name='sheet1') # 读取data.xlsx工作簿中sheet1的表格

# 读取文件前特定行数
dat = pd.read_csv('data.csv', nrows=500)

# 读取超大文件
reader = pd.read_csv('data.csv',
iterator=True) # 产生一个迭代器
chunkSize = 100000
chunks = []
while True:
try:
chunk = reader.get_chunk(chunkSize) # 一次读取特定行
# chunk # 进行一些过滤、处理
chunks.append(chunk)
except StopIteration:
break
df = pd.concat(chunks, axis=0, ignore_index=True)

save table

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import pandas as pd

# 输出数据到txt文本
dat.to_csv('data.xls',
index=False, # 是否输出df的index
header=False, # 是否输出表头
na_rep='', # 缺省值替换
sep='\t', # 使用tab作为分隔符
encoding='utf-8') # 输出文件使用utf-8编码

# 输出数据框到excel
writer = pd.ExcelWriter('output.xlsx') # 创建输出文件
df1.to_excel(writer,
sheet_name='Sheet1', ) # 输出到工作簿中名为Sheet1的工作表
df2.to_excel(writer,
sheet_name='Sheet2', ) # 输出到工作簿中名为Sheet2的工作表
# ...
writer.save() # 保存工作簿
---------本文结束,感谢您的阅读---------