我有一些代码使用一个名为 function 的函数填充两个列表,该函数返回两个值。该函数需要一些位于数据框行内的参数。然后我将列表附加到我的数据框中的新列。
data = [[45, 'F', 'Jill', 'USA'], [87, 'm', 'Jeff', 'Poland'], [99, 'M', 'Tim', 'Peru']]
df = pd.DataFrame(data, ['Age', 'Sex', 'Name', 'Location']
new_column1 = []
new_column2 = []
for member in tqdm(range(len(df))):
list1, list2 = (function(df['Age'][member], df['Sex'][member], df['Name'][member], df['Location'][member]))
new_column1.append(list1)
new_column2.append(list2)
我想知道是否有更快的方法来使用apply
. 我投入了 tqdm,因为每个人都喜欢知道他们必须等待多长时间。对于它的价值,函数的输出是一个浮点数和一个列表。
有一个更好的方法吗?我觉得这有点基本,我想要一些优雅和高效的东西。有没有办法使用应用来做到这一点?我想最终在某个时候使用 swifter 包。
更新
我不明白为什么这不起作用。
df[['New_column1', 'New_column2']] = df[['Age', 'Sex', 'Name', 'Location']].swifter.applymap(function)
我收到一个错误,该函数缺少 3 个必需的位置参数:“Sex”、“Name”和“Location”。