连接两个没有共同列的数据框架进行计算[英] Join two DataFrames with no common columns for calculations

本文是小编为大家收集整理的关于连接两个没有共同列的数据框架进行计算的处理方法,想解了连接两个没有共同列的数据框架进行计算的问题怎么解决?连接两个没有共同列的数据框架进行计算问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试根据我在两个不同数据集中拥有的信息进行计算.我需要将第一个数据帧的所有信息重复与第二个数据帧的信息一样多的次数.

例子:

数据帧 1:

name   price 
 A       1
 B       2

数据帧 2:

 currency    value
  Dollar       1
  Euro         2 

预期输出:

DataFrame 合并:

name   price   currency    Value
 A       1       Dollar      1
 A       1       Euro        1
 B       2       Dollar      4
 B       2       Euro        4

我一直在尝试类似的事情,使用应用和列表,然后将其转换为 DataFrame,但没有结果.不知何故,每个名称总是重复 currs 值:

lst = []
for index, currs in currencies.iterrows():
    lst.append(prices.apply(lambda pmRow: pd.Series({'name':pmRow['prices'], 'curr':currs['currency']}), axis=1))

有什么建议吗?谢谢!

推荐答案

看来你需要cross join:

df = pd.merge(df1.assign(A=1), df2.assign(A=1), on='A').drop('A', 1)
print (df)
  name  price currency  value
0    A      1   Dollar      1
1    A      1     Euro      2
2    B      2   Dollar      1
3    B      2     Euro      2

然后如果需要,多列 price 和 value:

df['value'] *= df['price']
print (df)
  name  price currency  value
0    A      1   Dollar      1
1    A      1     Euro      2
2    B      2   Dollar      2
3    B      2     Euro      4

本文地址:https://www.itbaoku.cn/post/1728091.html