返回数值列中字符串值的行号?

时间:2018-03-29 12:27:52

标签: pandas

我正在尝试将列转换为数字,如果列中的大多数值都是数字但有些值包含字符串值,则该函数应返回包含字符串值的列的行号。 我的数据集:

received
11
12
0
-340
2
9
1
aa
nn
qbb

预期输出:行号:8,9,10包含字符串值

1 个答案:

答案 0 :(得分:1)

我认为需要按to_numericerrors='coerce'进行过滤,以获得非NaN非数字的返回isnull

i = df.index[pd.to_numeric(df['received'], errors='coerce').isnull()]
print (i)
Int64Index([7, 8, 9], dtype='int64')
来自0

python计数,所以如果需要从1的计数中更改它:

i = df.index[pd.to_numeric(df['received'], errors='coerce').isnull()] + 1
print (i)
Int64Index([8, 9, 10], dtype='int64')

对于字典使用:

d = df.loc[pd.to_numeric(df['received'], errors='coerce').isnull(), 'received'].to_dict()
print (d)
{8: 'nn', 9: 'qbb', 7: 'aa'}