我将数据帧拆分为偶数和赔率,并根据字段按数字顺序排序,如下所示:import pandas as pd, numpy as np
df = pd.DataFrame({'Type' : ['AA', 'SL', 'BB', 'D0', 'Dk', 'FF'],
'ID' : ['100', '15', '20', '25', '37', '32'],
'Trans' : ['C', 'C', 'C', 'C', 'N', 'N']}).set_index('Type')
Even=df[df['ID'].astype(float)%2==0].sort(['ID'],ascending=[False])
Odd=df[df['ID'].astype(float)%2==1].sort(['ID'],ascending=[False])
print Even
print Odd
ID Trans
Type
FF 32 N
BB 20 C
AA 100 C
[3 rows x 2 columns]
ID Trans
Type
Dk 37 N
D0 25 C
SL 15 C
[3 rows x 2 columns]
但是假设在'ID'列中,我有一些字符串不能解释为float,比如:
^{pr2}$
我希望输出是:ID Trans
Type
FF 32 N
BB 20 D C
AA 100 C
[3 rows x 2 columns]
ID Trans
Type
Dk 37 N
D0 25XXX C
SL 15A C
[3 rows x 2 columns]
最有效的方法是什么?像使用测向str.split('FLOATVALUE'[-1]),然后按ID再次合并数据?我知道正则表达式可以使用,但它会很慢。在