gpt4 book ai didi

python - 根据其他列更改数据框中每一行的列

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:06 26 4
gpt4 key购买 nike

我有一个包含很多列的数据框。我想在每一行上应用一个函数,根据不同的列更改所有列。

def mark(row):
columns = get_columns_to_alter(row['Text'])
for c in columns:
row[c] = True

我正在尝试使用应用函数

 df.apply(mark, axis=1)

但它不会改变这些列。我究竟做错了什么?我给出的函数是一个伪代码,但它获取列的名称以根据“文本”列进行更改。

最佳答案

好的,老实说,这有点令人困惑。我看到的几个问题:

首先DataFrame.apply 每个列的函数应该看起来更像:

df.apply(lambda x: mark(x), axis=1)

这样你就可以遍历每一行。

其次DataFrame.apply 为每一行创建一个副本系列(在您的情况下);因此,更改不会应用于 df,而是应用于新的 row 值。如果你想改变 df,你需要 (a) 确保 mark 返回一些东西,并且 (b) 将它分配给其他东西:

def mark(row):
columns = get_columns_to_alter(row['Text'])
if len(columns) > 0:
row[columns] = True
return row

new_df = df.apply(lambda x: mark(x), axis=1)

像这样的事情应该会如您所愿。

关于python - 根据其他列更改数据框中每一行的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49194368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com