微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 加入两个没有公共列的DataFrame进行计算

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

例:

DataFrame 1:

name   price 
 A       1
 B       2

DataFrame 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

我一直在尝试类似这样的东西,使用apply和list,然后将其转换为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))

有什么建议?谢谢!

解决方法:

看来你需要交叉加入:

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

然后,如果有必要muliple列价格和价值:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐