我有一个带有以下列的数据框。
A
55B
<lhggkkk>
66c
dggfhhjjjj
我需要分别过滤以数字(例如55B和66C)开头的记录,以及其他分别过滤的记录。谁能帮忙吗?
答案 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