美文网首页
Concat函数

Concat函数

作者: Noza_ea8f | 来源:发表于2020-12-20 11:12 被阅读0次

如果有多个结构一样的表,Concat函数就可以显示他的威力了!
表一:


图片.png

表二:


图片.png
代码:
import pandas as pd

path = 'data/Concat函数.xlsx'

df_sheet1 = pd.read_excel(path, sheet_name='Sheet1')
df_sheet2 = pd.read_excel(path, sheet_name='Sheet2')

df_new = pd.concat([df_sheet1, df_sheet2])
print(df_new)

输出:

   user_id user_name
0        1         A
1        2         B
2        3         C
3        4         D
4        5         E
0        6         F
1        7         G
2        8         H
3        9         I
4       10         J

简直不要太方便!

如果两个表出现不匹配的怎么办呢?
实际上Concat函数有个join参数,默认时join="outer"外连接,这样就把所有的列合并过来了,如下图:


图片.png
图片.png

输出:

   user_id user_name other1 other2
0        1         A      a    NaN
1        2         B      b    NaN
2        3         C      c    NaN
3        4         D      d    NaN
4        5         E      e    NaN
0        6         F    NaN      f
1        7         G    NaN      g
2        8         H    NaN      h
3        9         I    NaN      i
4       10         J    NaN      j

如果我只想要匹配到的列怎么办呢?那就用内连接”inner“:

import pandas as pd

path = 'data/Concat函数.xlsx'

df_sheet1 = pd.read_excel(path, sheet_name='Sheet1')
df_sheet2 = pd.read_excel(path, sheet_name='Sheet2')

df_new = pd.concat([df_sheet1, df_sheet2], join='inner')
print(df_new)

当文件夹里有多个结构相同的表格,可以这样操作:

import pandas as pd
import os

path = 'data/'  # 数据存放文件夹

data_ls = []
for data_path in os.listdir(path):
    df = pd.read_excel(io=path + data_path, sheet_name='Sheet1')
    data_ls.append(df)

df_new = pd.concat(data_ls)

df_new.to_excel('a.xlsx', index=False)

相关文章

网友评论

      本文标题:Concat函数

      本文链接:https://www.haomeiwen.com/subject/ckscnktx.html