将函数的多个返回存储在DataFrame中



如何在一个DataFrame中存储函数的多个返回。以下是MRE中的一个示例。

import pandas as pd
import numpy as np
def example(height):
weight = height * 2
wingspan = height * 0.8
return weight, wingspan
df = pd.DataFrame(np.array([80, 60, 70]),
columns=['height'])

现在,如果用一个只返回一个输出的函数来做这件事,我会这样做。

def example_row(row):
return example(row.height)
df['weight'] = df.apply(example_row, axis=1)

但我不知道如何添加两个立柱——一个用于重量,一个用于翼展。提前谢谢。

由于可以通过name获取索引,因此可以通过.loc编写索引。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([80, 60, 70]), columns=['height'])
def example_row(x):
df.loc[x.name, 'weight'] = x[0] * 2
df.loc[x.name, 'wingspan'] = x[0] * 0.8
df.apply(example_row, axis=1)
height  weight  wingspan
0   80  160.0   64.0
1   60  120.0   48.0
2   70  140.0   56.0

最新更新