字符串列转换为 Pandas DataFrame 中的浮点数

string column conversion to float in Pandas DataFrame

我想从 DataFrame 列“'CA Distance Nominal (LD | au)”中获取左值 (LD) 管道分隔值,这是代码。 当我将字符串转换为浮点数时,我得到的所有值都是 NaN。

cneos = pd.read_csv('cneos.csv')
print(cneos['CA Distance Nominal (LD | au)'].head())
cneos['Distance']=pd.to_numeric(cneos['CA Distance Nominal (LD | au)'], errors='coerce')
print(cneos['Distance'].head())

结果

0    2.02 | 0.00520
1    0.39 | 0.00100
2    8.98 | 0.02307
3    3.88 | 0.00996
4    4.84 | 0.01244
Name: CA Distance Nominal (LD | au), dtype: object

to_numeric()

之后
0   NaN
1   NaN
2   NaN
3   NaN
4   NaN
Name: Distance, dtype: float64

如何获得以浮点形式分隔的 LD 和 AU 值

我不确定这是解决您问题的最佳方法,但它有效:

separeted_data_frame = pd.DataFrame(cneos['CA Distance Nominal (LD | au)'].apply(lambda x: x.split('|')).to_list())
separeted_data_frame.columns = ['LD', 'AU']
separeted_data_frame.LD = separeted_data_frame.LD.astype(float)
separeted_data_frame.AU = separeted_data_frame.AU.astype(float)
cneos = cneos.join(separeted_data_frame).drop('CA Distance Nominal (LD | au)', 1)

结果是:

    LD  AU
0   2.02    0.00520
1   0.39    0.00100
2   8.98    0.02307
3   3.88    0.00996
4   4.84    0.01244

是你想要的吗?