gpt4 book ai didi

python - 更改 DataFrame 中函数的值

转载 作者:行者123 更新时间:2023-12-01 03:27:41 24 4
gpt4 key购买 nike

我正在尝试创建一个函数,从数据帧内的列中删除“#1”:

def formatSignalColumn(df):
for i,signal in enumerate(df['Signal list']):
df = df.set_value(i, 'Signal list', signal.replace(" #1", ""))
df = df.set_value(i, 'Signal list', signal.replace(" #2", ""))
return df

但是,当我通过它传递我的 DataFrame 时,它​​不会改变任何东西。

tlog = formatSignalColumn(tlog)

有趣的是,当我在函数外部运行 for 循环时,它也不起作用,但是当我专门选择 i 时,它也不起作用。和signal值它有效...

i = 0
signal = tlog['Signal list'][i]
tlog= tlog.set_value(i, 'Signal list', signal.replace(" #1", ""))
tlog= tlog.set_value(i, 'Signal list', signal.replace(" #2", ""))

这对我来说没有任何意义。大家有什么想法吗?

最佳答案

您可以只使用矢量化 str.replace并传递一个正则表达式模式以在一行中执行此操作:

In [231]:    
df = pd.DataFrame({'something':[' #1blah', ' #2blah', '#3blah']})
df

Out[231]:
something
0 #1blah
1 #2blah
2 #3blah

In [232]:
df['something'] = df['something'].str.replace(' #1| #2','')
df

Out[232]:
something
0 blah
1 blah
2 #3blah

您发现您正在对传入的 df 的副本进行操作,在迭代时额外修改数据对象并不是一个好主意。

除此之外,人们应该始终寻求一种矢量化方法并避免循环,因为循环很少是唯一可用的方法

关于python - 更改 DataFrame 中函数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41267573/

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