循环遍历时出错

时间:2019-01-25 17:31:00

标签: python pandas dataframe

我有一个包含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

如何解决这些错误?

1 个答案:

答案 0 :(得分:0)

我认为问题是row ['A']或row ['B']的某些值包含浮点值。这就是为什么当您获得该float值时无法对其下标的原因。否则,它会像[float] [index]那样产生错误。您是否在那里期望一个字符串值?可能并非所有值在数据帧中都具有相同的数据类型。

第二,索引是该行的索引,我现在不知道为什么要像这样使用它。为了进一步说明,我需要看一下这些数据,但是似乎有可能发生,即使您获得了行['A']的字符串或数组值(可能会被遍历),索引也太大了。对于前

row['A'] = "hello"
a  = row['A'][10]

会给您索引错误。