我有2个数据框(现在我说2个,但我们可以有n个数据框)。 数据框的名称在列表中。 我想加入名称出现在列表中的所有数据框

import pandas as pd
data1 = [['Alex',10],['Bob',12],['Clarke',13]]
df1 = pd.DataFrame(data1,columns=['Name','Age'])

data2 = [['David',10],['Alain',12],['Rob',13]]
df2 = pd.DataFrame(data2,columns=['Name','Age'])

list = ['df1','df2']                   

# i want something to work like

df3 = pd.Concat(list)

感谢您的帮助。

#1楼 票数:1

您需要将名称设置为索引,然后执行concat

list = [df1,df2] 

pd.concat([x.set_index('Name') for x in list],axis=1)
Out[270]: 
         Age   Age
Alain    NaN  12.0
Alex    10.0   NaN
Bob     12.0   NaN
Clarke  13.0   NaN
David    NaN  10.0
Rob      NaN  13.0

或使用reduce + merge

from functools import reduce
df = reduce(lambda  left,right: pd.merge(left,right,on=['Name'],
                                            how='outer'), list)
df
Out[275]: 
     Name  Age_x  Age_y
0    Alex   10.0    NaN
1     Bob   12.0    NaN
2  Clarke   13.0    NaN
3   David    NaN   10.0
4   Alain    NaN   12.0
5     Rob    NaN   13.0

#2楼 票数:0

如果要合并结果,请使用:

pd.concat([df1, df2], ignore_index=True)

#     Name  Age
#0    Alex   10
#1     Bob   12
#2  Clarke   13
#3   David   10
#4   Alain   12
#5     Rob   13

#3楼 票数:0

不要将变量名用作list 遍历列表以获取数据帧的实例,然后进行串联

lis = ['df1','df2']                   

df3 = pd.concat([globals()[i] for i in lis]) # to get instance of df1 from string 'df1'
df3

产量

Name    Age
Alex    10
Bob     12
Clarke  13
David   10
Alain   12
Rob     13

  ask by Sachin Kamble translate from so

未解决问题?本站智能推荐:

1回复

Python-合并其中列包含特定值的数据框

我正在使用Python Pandas合并两个数据框,如下所示: 但是,我只想在df2中的另一列(“ Business_Name”)包含某个值的情况下执行此操作。 我该怎么做呢? 因此,类似“当企业名称为Walmart时,合并这两个数据框。”
1回复

Python数据框:如果列名称包含在另一列的字符串行中,则为1,否则为0

上面是我要创建的数据框。 第一行代表字段名称。 我要采用的逻辑如下:如果列名在“ Column A”行中,则为1,否则为0 我搜寻了Google,寻找可以回答类似于我的问题的代码,以便我可以对其进行测试并向后设计解决方案。 不幸的是,我找不到任何东西。 否则,我会发布一些我试图解
2回复

Python-如果名称包含在任何行中,则保留组的所有行

我有一份包含发票 ID 和审批人的报告。 发票可以有多个审批人,这会导致 ID 重复(这很好)。 我想要做的是检查每组发票 ID,以查看 2 个批准者中的任何一个是否在与该 ID 关联的批准者列表中。 如果是,那么我想保留该 ID 的所有行。 我认为我的问题与这个问题类似: 如果没有任何行符合特定条
1回复

Python-数据框合并+JSON

我正在尝试通过 id 合并两个数据帧并将结果保存在 json 文件中。
1回复

Python-查找数据框中包含单词的前5行

我正在尝试创建一个功能,以打印包含单词列表中单词的产品列表的前5名产品及其价格,以及后5名产品及其价格。 我已经试过像这样- 但是,上面的函数在行price[mask] = dframe.loc[mask, 'Price in AUD']中抛出错误,该错误price[mask] = dfr
1回复

Python-更改列名称,合并和重新排序数据框

我有两个数据框-DataFrameA和DataFrameB 数据框 数据框 我想要这样的输出DataFrame, 在变量=“ BBBBB”中声明的DataFrame B列的前缀 数据框 我正在数据框架A和数据框架B之间进行内部联接,然后按顺序对列进行排序。 DataF
2回复

Python-拆分列表中包含的数据帧

我正在从 PDF 中提取表格,页面可以有 1 个以上的表格。 我正在使用 Tika 库进行提取。 在这种情况下,输出是包含在列表中的 2 个数据帧(因此是 2 个表) - 请有人分享我如何提取每个数据帧? 对于上下文,每个 df 有 2 列和相同的行数。 例子: 我想在这里提取第一个 df,所以:
1回复

python-从数据框列中删除符号之类的列表[重复]

这个问题已经在这里有了答案: 如何从Pandas数据框中的列表中删除值? 3个答案 我有一个从一堆.json文件创建的数据框,显然我以.json通常格式化的列表形式获取数据。 数据: 如何替换此列中missing data ? 如果它是字符串,我可以删除missin