Python 熊猫多次从数据帧添加值
下面的内容在SQL上很简单,但我不知道如何在Pandas上实现 我的意见是:Python 熊猫多次从数据帧添加值,python,pandas,Python,Pandas,下面的内容在SQL上很简单,但我不知道如何在Pandas上实现 我的意见是: import pandas as p symb = p.DataFrame(['a', 'b', 'c'], columns=['symb']) fld = p.DataFrame(['field1', 'field2', 'field3'], columns=['fld']) 我希望能够获得以下数据帧作为输出: symb fld a field1 a field2 a field3
import pandas as p
symb = p.DataFrame(['a', 'b', 'c'], columns=['symb'])
fld = p.DataFrame(['field1', 'field2', 'field3'], columns=['fld'])
我希望能够获得以下数据帧作为输出:
symb fld
a field1
a field2
a field3
b field1
b field2
b field3
c field1
c field2
c field3
你知道如何得到这个结果吗
谢谢 首先在两个
数据帧中创建具有相同值的新列。然后由他们使用,然后是帮助器列:
symb['one'] = 1
fld['one'] = 1
print pd.merge(symb, fld, on='one').drop('one', axis=1)
symb fld
0 a field1
1 a field2
2 a field3
3 b field1
4 b field2
5 b field3
6 c field1
7 c field2
8 c field3
解决方案
只有一条评论。。。你们知道这叫什么吗?我甚至无法用谷歌搜索如何做到这一点,因为我不知道这个操作是如何定义的(join、merge和其他将链接到显示一般说明的页面)。这可能有助于未来用户找到此页面。我认为它被称为笛卡尔积
或交叉连接
,而此代码可能会回答此问题,提供有关此代码为什么和/或如何回答此问题的附加上下文,从而提高其长期价值。
pd.DataFrame(index=symb.symb, columns=fld.fld).fillna(0).stack().reset_index()[['symb', 'fld']]