我有一个具有ID索引的数据框,以及一个接受ID并返回有关该ID的数据(1行)的函数。我想创建另一个与索引具有相同ID的数据框,但是列是从我的函数中收集的列和值。我正在尝试使用Apply,但是我不确定该怎么做。
例如,
def f(id):
does stuff
return id_df
new_df = pd.DataFrame(index = original_df.index)
new_df.apply(lambda x: f(x.name).values, axis = 1)
这样做使我看起来像:
id1 [[data...
id2 [[data...
id3 [[data...
id4 [[data...
id5 [[data...
所有数据显示为一列。如何使输出函数的列填充new_df的列?
答案 0 :(得分:0)
您应该在旧数据框上调用.apply()并将结果返回到新数据框的列,如下所示:
new_df['colA'] = old_df.apply(f, axis = 1)
如果您尝试将多个值写入多个列,请参见:Writing the output of df.apply() to multiple columns at once
请注意以下几点:
def f(row):
id = row['ID']
return stuff(id)