通过连接2个列表(例如2列的乘法)创建新的数据框-Python

时间:2019-02-26 10:17:52

标签: python pandas

由于我不确定该如何称呼,因此标题可能不清楚这个问题。我想要实现的是Pandas中的以下内容:

a = [1,2,3,4] b = ['a','b']

我可以创建一个数据框吗?

column1 column2
'a'        1
'a'        2
'a'        3
'a'        4
'b'        1
'b'        2
'b'        3
'b'        4

2 个答案:

答案 0 :(得分:8)

itertools.productDataFrame构造函数一起使用:

a = [1,2,3,4] 
b = ['a', 'b']

from  itertools import product
#pandas 0.24.0+
df = pd.DataFrame(product(b,a), columns=['column1','column2'])
#pandas bellow 
#df = pd.DataFrame(list(product(b,a)), columns=['column1','column2'])
print (df)
  column1  column2
0       a        1
1       a        2
2       a        3
3       a        4
4       b        1
5       b        2
6       b        3
7       b        4

答案 1 :(得分:0)

如果有人喜欢的话,我会在这里放另一种方法。

下面的完整模型:

import pandas as pd 
a = [1,2,3,4] 
b = ['a', 'b']
df=pd.DataFrame([(y, x) for x in a for y in b], columns=['column1','column2'])
df

结果如下:

    column1 column2
0   a   1
1   b   1
2   a   2
3   b   2
4   a   3
5   b   3
6   a   4
7   b   4