2017-12-31 82 views
0

私は以下の問題を抱えています。私は2つの別々のpythonスクリプトを持っています。 最初にCSVファイルを新しい形式に変換します(特定の列を削除してドル記号を削除します)パンダ:CSVの番号から ' - 'を取り除く

変換されたすべてのCSVファイルが読み込まれ、1つの大きなスクリプトが作成されます。

私は次の問題に取り組んでいることを除いて、これで十分です。

両方のファイルの列の1つMoney Outには、「 - 」(-235.93)で始まる値が含まれることがあります。このシンボルをファイルから削除したいと思います。

次のコードを両方のスクリプトに入れましたが、シンボルを削除できません。 データは時には数値であり、場合によっては文字列です。私はそれを文字列に統一し、 '置き換え'メソッドを使用することで問題は解決すると思っていましたが、それはできませんでした。私はパンダの方法でビルドを使用しましたが、まだ役に立たない。

df['Money Out'] = df['Money Out'].astype(str) 
df['Money Out'] = df['Money Out'].replace('-', '') 
df['Money Out'].replace('-', '', inplace=True) 

誰かが私が間違っていると考えている人はいますか?

+0

'.str.replace( ' - '、 '')' - 'Series.replace'は別のものです... –

答えて

1

あなたのコードを行うにしてみてください。

df['Money Out'].replace('-', '', inplace=True) 

を(列または値を持つ正規表現の完全一致を置き換え)別物であるSeries.replaceを使用していますSeries.str.replace関数(より伝統的なものは、別の場所に存在する部分文字列を置き換える)では、以下を使用できます。

df['Money Out'] = df['Money Out'].str.replace('-', '') 

テキストからハイフンを削除します。

+0

これで解決しました!ありがとう! – Jasper

1

この

df['Money Out'] = df.apply(lambda r: ("%s"%(r['Money Out'] or "0.0")).replace("-",""), axis=1) 
関連する問題