gpt4 book ai didi

python - 替换匹配给定条件的数据框值

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

我在制表符分隔的文件 test.tsv 中有以下数据。

Class   Length  Frag
I 100 True
I 200 True
P 300 False
I 400 False
P 500 True
P 600 True
N 700 True

我已将数据加载到 pandas.DataFrame 对象中,在任何 Class = I 和 Frag = True 我想设置 Class = F 的地方。The following code似乎没有用。我做错了什么,我应该做什么?

import pandas
data = pandas.read_table('test.tsv')
data.loc[(data.Class == 'I') & (data.Frag is True), 'Class'] = 'F'

最佳答案

在你的行中

data.loc[(data.Class == 'I') & (data.Frag is True), 'Class'] = 'F'

你不应该使用isis 测试同一性,而不是相等性。因此,当您询问 data.Frag 是否为 True 时,它会比较 Series 对象 data.Frag 并询问它是否与 True 是同一个对象>,但事实并非如此。如果你真的想使用 ==,那么你会得到一个 Series 结果:

>>> data.Frag is True
False
>>> data.Frag == True
0 True
1 True
2 False
3 False
4 True
5 True
6 True
Name: Frag, dtype: bool

但由于无论如何我们都在处理一系列 bool 值,== True 部分不会添加任何内容,我们可以将其删除:

>>> data.loc[(data.Class == 'I') & (data.Frag), 'Class'] = 'F'
>>> data
Class Length Frag
0 F 100 True
1 F 200 True
2 P 300 False
3 I 400 False
4 P 500 True
5 P 600 True
6 N 700 True

关于python - 替换匹配给定条件的数据框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32343743/

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