この質問を手伝っていただければ幸いです。文字列として数値を含む列があります。これらはさまざまな国のデータであるため、「、」、「$」などの形式が異なるものもあります。セリエを数値に変換しようとしていますが、「、」、「$」の値に問題があります。
data={"valores":[1,1,3,"4","5.00","1,000","$5,700"]}
df=pd.DataFrame(data)
df
valores
0 1
1 1
2 3
3 4
4 5.00
5 1,000
6 $5,700
私は以下を試しました:
df["valores"].replace(",","")
ただし、「、」値は文字列内にあり、文字列値自体ではないため、変更はありません。
pd.to_numeric(df["valores"])
しかし、「ValueError:位置5の文字列「1,000」を解析できません」というエラーが表示されます。
valores=[i.replace(",","") for i in df["valores"].values]
しかし、「AttributeError: 'int'オブジェクトには属性 'replace'エラーがありません」というエラーが表示されます。
それで、ついに、私はこれで試しました:
valores=[i.replace(",","") for i in df["valores"].values if type(i)==str]
valores
['4', '5.00', '1000', '$5700']
ただし、最初の3つの値は文字列ではないため、スキップしました。
正規表現コードを使用すれば管理できると思いますが、操作方法がわかりません。
私はこれに約7時間苦労しているので、あなたが私を助けてくれることを願っています。
最初にそれから文字列を作成する必要があるので、このようなもの
valores=[str(i).replace(",","") for i in df["valores"].values]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加