我在制表符分隔的文件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'
我认为可以使用
.apply()
和axis=1
以及lambda表达式作为条件/替换。示例-在你的队伍里
你不应该使用
is
。is
测试的是同一性,而不是相等性。所以当你问是否data.Frag is True
时,它会比较Series对象data.Frag
,问它是否和True
是同一个对象,这是不对的。确实要使用==
,因此得到一系列结果:但是由于我们使用的是一系列bool,因此
== True
部分没有添加任何内容,我们可以删除它:相关问题 更多 >
编程相关推荐