在数据帧的特定列中查找第一次出现的非整数

时间:2016-06-29 13:51:39

标签: python string pandas find

我的列中有一堆整数的数据帧;在列中的某个点,将出现一个字符串或字母。我需要找到这个字符串或字母或非整数,然后删除它之后的所有数据。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

应该这样做:

In [20]: df = pd.DataFrame({'x': [1, 2, 'a', 1, 2]})

In [21]: df
Out[21]: 
   x
0  1
1  2
2  a
3  1
4  2

In [22]: df.loc[(~df.x.apply(np.isreal)).cumsum() == 0, :]
Out[22]: 
   x
0  1
1  2

答案 1 :(得分:2)

试试这个:

df = pd.DataFrame({'x': [1, 2, 'a', 1, 2]})
df.iloc[:(df.x.apply(type) == str).idxmax()]

   x
0  1
1  2

enter image description here