我有一个包含2列的数据框,我想创建一个第3列,根据第A列中的值是否包含在B列中的值,为每行返回True或False。
这是我的代码:
C = []
for index, row in df.iterrows():
if row['A'][index] in row['B'][index]:
C[index] = True
else:
C[index] = False
我收到以下错误:
1) TypeError: 'float' object is not subscriptable
2) IndexError: list assignment index out of range
如何解决这些错误?
答案 0 :(得分:0)
我认为问题是row ['A']或row ['B']的某些值包含浮点值。这就是为什么当您获得该float值时无法对其下标的原因。否则,它会像[float] [index]那样产生错误。您是否在那里期望一个字符串值?可能并非所有值在数据帧中都具有相同的数据类型。
第二,索引是该行的索引,我现在不知道为什么要像这样使用它。为了进一步说明,我需要看一下这些数据,但是似乎有可能发生,即使您获得了行['A']的字符串或数组值(可能会被遍历),索引也太大了。对于前
row['A'] = "hello"
a = row['A'][10]
会给您索引错误。