如何在 pandas 中添加用于 concat 的指示符列?
How to add an indicator column for concat in pandas?
merge()
有一个指标参数,因此您可以确定从哪个 df 中找到原始数据。我没有看到 concat()
的类似功能。
pd.merge(left=df1, right=df2, indicator=True)
有没有办法用 concat()
创建一个指标列?
我最终在每个文件中创建了一个标记为 FileName
的新列,然后我 concat()
.
df1['FileName'] = 'df1'
df2['FileName'] = 'df2'
final = pd.concat(df1,df2)
Column1 Column2 Column3 FileName
3 89 08 df1
43 934 34 df1
34 934 32 df2
431 2342 23 df2
import pandas as pd
df1 = pd.DataFrame(['a','b'], index=[0,1], columns=['letter'])
df2 = pd.DataFrame(['c','d','e'], index=[2,3,4], columns=['letter'])
result = pd.concat([df1, df2], axis=0, keys=['from_df1','from_df2']).reset_index(level=[0])
df1
letter
0 a
1 b
df2
letter
2 c
3 d
4 e
结果
level_0 letter
0 from_df1 a
1 from_df1 b
2 from_df2 c
3 from_df2 d
4 from_df2 e
merge()
有一个指标参数,因此您可以确定从哪个 df 中找到原始数据。我没有看到 concat()
的类似功能。
pd.merge(left=df1, right=df2, indicator=True)
有没有办法用 concat()
创建一个指标列?
我最终在每个文件中创建了一个标记为 FileName
的新列,然后我 concat()
.
df1['FileName'] = 'df1'
df2['FileName'] = 'df2'
final = pd.concat(df1,df2)
Column1 Column2 Column3 FileName
3 89 08 df1
43 934 34 df1
34 934 32 df2
431 2342 23 df2
import pandas as pd
df1 = pd.DataFrame(['a','b'], index=[0,1], columns=['letter'])
df2 = pd.DataFrame(['c','d','e'], index=[2,3,4], columns=['letter'])
result = pd.concat([df1, df2], axis=0, keys=['from_df1','from_df2']).reset_index(level=[0])
df1
letter
0 a
1 b
df2
letter
2 c
3 d
4 e
结果
level_0 letter
0 from_df1 a
1 from_df1 b
2 from_df2 c
3 from_df2 d
4 from_df2 e