gpt4 book ai didi

python - 更改具有特定索引的行的值

转载 作者:行者123 更新时间:2023-11-28 22:37:02 28 4
gpt4 key购买 nike

我有这张表:

table

例如:我只想更新索引为a 的行的值(stream 除外)。

我尝试过的事情:

index = 'a'
cols = [col for col in df.columns if col != 'stream']
df.loc[index,cols] = df * some_value

这给了我错误:ValueError: Incompatible indexer with DataFrame

然后我试了一下:

index = 'a'
df.loc[index] = df * some_value

但是我也给了我同样的错误。

最后我也试了:

df.index.name = 'foo'
cols = [col for col in df.columns if col != 'stream']
df.loc[df['foo'] == 'a', cols ] = df * some_value

但这也没有成功。我该如何处理?

最佳答案

我认为您需要添加 []:

index = ['a']
cols = [col for col in df.columns if col != 'stream']

df.loc[index, cols] = df * some_value

示例:

print df
stream feat another_feat
a 1 1 4
b 2 2 5
c 2 5 1
d 3 3 4

some_value = 5

index = ['a']
cols = [col for col in df.columns if col != 'stream']

df.loc[index,cols] = df * some_value
print df
stream feat another_feat
a 1 5 20
b 2 2 5
c 2 5 1
d 3 3 4

它有效,因为它返回 DataFrame(感谢 ayhan ):

print df.loc[['a'],cols]
feat another_feat
a 1 4

print df.loc['a',cols]
feat 1
another_feat 4
Name: a, dtype: int64

编辑:另一种解决方案:

cols = [col for col in df.columns if col != 'stream']

df.loc['a',cols] = df.loc['a',cols] * some_value
print df
stream feat another_feat
a 1 5 20
b 2 2 5
c 2 5 1
d 3 3 4

关于python - 更改具有特定索引的行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978737/

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