过滤熊猫数据框中的列

时间:2018-12-12 05:49:56

标签: python-3.x pandas

我有一个带有以下列的数据框。

  A
 55B
 <lhggkkk>
 66c
 dggfhhjjjj

我需要分别过滤以数字(例如55B和66C)开头的记录,以及其他分别过滤的记录。谁能帮忙吗?

3 个答案:

答案 0 :(得分:0)

尝试:

import pandas as pd
df = pd.DataFrame()
df['A'] = ['55B','<lhggkkk>','66c','dggfhhjjjj']
df['B'] = df['A'].apply(lambda x:x[0].isdigit())
print(df)
            A      B
0         55B   True
1   <lhggkkk>  False
2         66c   True
3  dggfhhjjjj  False

答案 1 :(得分:0)

尝试检查第一个数字是否为数字,然后检查布尔值索引

mask =  df['A'].str[0].str.isdigit()
one = df[mask]
two = df[~mask]

print(one,'\n',two)

  A
0  55B
2  66c 
             A
1   <lhggkkk>
3  dggfhhjjjj

答案 2 :(得分:0)

要检查第一个字符串是否为数字:

df['A'].str[0].str.isdigit()

所以:

import pandas as pd

import numpy as np

df:

-----------------
    |          A         
-----------------
 0  |        55B
 1  |  <lhggkkk>
 2  |        66c
 3  | dggfhhjjjj

df['Result'] = np.where(df['A'].str[0].str.isdigit(), 'Numbers', 'Others')

df:

----------------------------
    |          A |    Result
----------------------------
 0  |        55B |   Numbers
 1  |  <lhggkkk> |    Others
 2  |        66c |   Numbers
 3  | dggfhhjjjj |    Others