Pandas多次从DataFrame添加值

时间:2016-05-11 17:18:10

标签: python pandas

以下在SQL上很容易,但我无法弄清楚如何在Pandas上做到这一点。

我的输入是:

import pandas as p    
symb = p.DataFrame(['a', 'b', 'c'], columns=['symb'])
fld = p.DataFrame(['field1', 'field2', 'field3'], columns=['fld'])

我希望能够将以下DataFrame作为输出:

symb  fld
a     field1
a     field2
a     field3
b     field1
b     field2
b     field3
c     field1
c     field2
c     field3

有关如何获得此结果的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:2)

首先在DataFrames中创建具有相同值的新列。然后使用merge,然后使用drop帮助列:

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

答案 1 :(得分:1)

解决方案

pd.DataFrame(index=symb.symb, columns=fld.fld).fillna(0).stack().reset_index()[['symb', 'fld']]