我有一个数据集,它有一列,看起来像这样
Badge Number
1
3
23 / gold
22 / silver
483
我只需要数字.这是我的代码:
df = pd.read_excel('badges.xlsx')
df['Badge Number'] = df['Badge Number'].str.extract('(\d+)')
print(df)
我期待的结果是:
Badge Number
1
3
23
22
483
但我得到了
Badge Number
Nan
Nan
23
22
Nan
为了测试,我将数据帧转储到了.csv并用pd读回.read_csv().这只给了我需要的数字(though of course that's not a solution)
我也试过了
df['Badge Number'] = np.where(df['Badge Number'].str.isnumeric(), df['Badge Number'], df['Badge Number'].str.extract('(\d+)'))
但这给了我所有的1.我知道我在try 我甚至一点都不懂的事情,但我希望有一个简单的解决方案.