web-dev-qa-db-ja.com

Python-データフレーム内のすべてのアイテムを文字列に変換します

次の手順に従いました。 Pythonで、リスト内のすべての項目を浮動小数点数に変換するにはどうすればよいですか? Dataframeの各列はlistですが、floatsすべての値をstringsに変更することにしました。

df = [str(i) for i in df]

しかし、これは失敗しました。

列名の最初の行を除くすべてのデータを単純に消去しました。

次に、df = [str(i) for i in df.values]を試してみると、Dataframe全体が1つの大きなリストに変更されましたが、DataframeをOracleテーブルにエクスポートするスクリプトの目標を達成するにはデータがめちゃくちゃになりすぎます。

文字列ではないデータフレーム内のすべてのアイテムを文字列に変換する方法はありますか?

11
theprowler

applymapメソッドを使用できます:

df = df.applymap(str)
15
Psidom

これを使用できます:

df = df.astype(str)

好奇心から、受け入れられたソリューションと私のソリューションの効率に違いがあるかどうかを確認することにしました。

結果は以下のとおりです。

例df:df = pd.DataFrame([list(range(1000))]、index = [0])

テストdf.astype

%timeit df.astype(str) 
>> 100 loops, best of 3: 2.18 ms per loop

テストdf.applymap

%timeit df.applymap(str)
1 loops, best of 3: 245 ms per loop

そうみたいです df.astypeは非常に高速です:)

22
Skirrebattie

これは私のために働いた:

dt.applymap(lambda x: x[0] if type(x) is list else None)
0
Sarbari Roy