【发布时间】:2018-08-06 17:04:14
【问题描述】:
我有两个列表:
a = [1,2,3]
b = [4,5,6]
我想创建一个数据框,其中 (a,b) 的每个组合都会生成一个数据框 X,然后我选择 X 的最大值strong>,生成的输出行/列包含 a 和 b 中的元素。
df=[]
for i, j in itertools.product(a, b):
X = do_something(i,j) ## this is a dataframe
x_value = X.max()
df.append(i,j,x_value)
df=pd.DataFrame(df, columns=['a', 'b', 'x_value'])
输出数据框的列应为 a,行应为 b,值应为 x_value。
1 2 3
4
5
6
【问题讨论】:
-
是的,没错——更新了
-
func是否采用标量i和j?所以它必须在创建数据框之前或之后迭代地应用? -
不,函数非常复杂,但每次迭代 (i, j) 的最终结果是一个包含许多列的数据帧。然后我从列中选择一个值
-
有两个问题,1) 为
a和b的笛卡尔积生成x_value,以及2) 用a和b列排列Dataframe 中的值和行。您的代码 1) 很好,但创建了一个不同的数据框,一个有 3 列和 9 行。但数据都在那里。
标签: python pandas numpy dataframe itertools