什么是SQL中的'UnionAll'相当于什么以及如何使用它?

时间:2018-03-20 21:51:24

标签: python sql dataframe

我需要将数据框与列表组合在一起,其方式类似于SQL中的UnionAll。这是一个例子:

df1 = pd.DataFrame([('A',10),('B',20),('C',30)], columns=['code','value'])

DF1

code   value
 A       10
 B       20
 C       30

list_A = [100,200,300]

结果,我需要获得如下数据框:

code   value   list_A
 A       10      100
 A       10      200
 A       10      300
 B       20      100
 B       20      200
 B       20      300
 C       30      100
 C       30      200
 C       30      300

1 个答案:

答案 0 :(得分:0)

这是一种实现所需结果的方法,但这仅在list_A中的行数等于import pandas as pd df2 = reduce( lambda a, b: pd.concat([a, b]), (df1 for i in range(len(list_A))) ) df2 = df2.reset_index(drop=True) 的长度时才有效。 (我认为这是你的问题唯一有道理的方法)。

首先使用pandas.concat()来重复"重复"你的DataFrame。

df2['list_A'] = list_A * len(list_A)

然后添加新列:

#  code  value  list_A
#0    A     10     100
#1    B     20     200
#2    C     30     300
#3    A     10     100
#4    B     20     200
#5    C     30     300
#6    A     10     100
#7    B     20     200
#8    C     30     300

输出:

reduce()

如果你正在使用python3,则需要导入from functools import reduce

App