首页 > 解决方案 > 如何查找“+: Long Str 不支持的操作数类型”发生在哪一行?

问题描述

当我尝试添加两个字符串列以创建新列时,我正在尝试在 Python Pandas 中调试我的程序。该程序具有以下回溯:“-:'int'和'str'不支持的操作数类型”在我将数据类型更改为 之后df['ColA']=df.ColA.astype(str),问题就解决了。因此,我认为可能有一(或几)行有整数。我需要找到导致问题的行,因为这里有几百万行。

ID colA    colB
1  apple   USA
2  Banana  Japan
3  Pear    5
4  Peach   China

df['ColA_ColB'] = vre_df['ColA'] + "_" + df['ColB']

下面解决问题,但我需要知道是哪一行导致了问题(或不是str

df['ColA_ColB'] = df['ColA'].astype(str) + "_" + df['ColB'].astype(str)

寻找打印 ColB 不是的行号的方法str。(例如 3 个)

更清楚地说,我如何生成 ColB 或 ColA 的值不是字符串的子集表。例如 ID colA colB

3 梨 5

另一个问题是,使用现有的数据集,是否有一种快速的方法可以将“'”符号添加到数据集中的数字行(例如'5)?

标签: pythonpandasdebugging

解决方案


applymap可能不是最快的,但它会使工作完成如下:

m = df[['colA', 'colB']].applymap(type).ne(str).any(axis=1)
df[m]

Out[472]:
   ID  colA colB
2   3  Pear    5

推荐阅读