如何在一个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