Closed2

スクレイピングして""がfloatにならずに困った

shuyin02shuyin02

スクレイピングした数表がStringだったのでfloatに直そうとしたができなかった

'' はfloatに直せないといわれた
fillna(0)もできないので困った

結論

        table_values = table.drop(columns=info_cols)
        val_cols = table_values.columns
        for col in val_cols:
            # print(table_values[col])
+          table_values[col] = table_values[col].str.replace(',', '').replace('\xa0', '0').astype(float)
-          table_values[col] = table_values[col].str.replace(',', '').fillna(0).astype(float)
            # print(table_values[col])

 を置換すればよいということが分かった

shuyin02shuyin02

補足

jupyter.ipynb
df.loc[2362, '累計日割差']

=> \xa0'

こんな感じで出力はされるのでコピペしてstr.replace()を実行した。
正規表現でより良いマッチはできるかもしれない。
この方法でうまくいかないことが発生したらまた考えること。

このスクラップは2023/02/22にクローズされました