私はExcelのスプレッドシート(SAPから抽出したものです)にデータが入っています(テキスト、数字)。私はこのデータをDataFrameに変換し、いくつかの計算を行い、最終的にsqliteデータベースに保存します。 excelスプレッドシートには小数点の区切り記号としてコンマが付きます。 sqliteデータベースには、小数点記号としてドットが含まれています。コードから小数点記号(Python、Sqlite、Pandas)を変更します
エキス:
df_mce3 = pd.read_excel('rawdata/filename.xlsx', header=0, converters={'supplier': str, 'month': str}, decimal=',')
(進=「」あなたはcsvファイルで作業しているときのみ動作提案ソリューションでした)
私は次のコードを使用して計算を行った後は、 SQLiteのデータベースに結果を保存します。
conn = sqlite.connect("database.db")
df_mce3.to_sql("rawdata", conn, if_exists="replace")
df_ka_ext.to_sql("costanalysis_external", conn, if_exists="replace")
[...]
入力:
month ordqty ordprice ordervolume invoiceqty invoiceprice
08.2017 10,000 14,90 149,00 10,000 14,90
出力:
month ordqty ordprice ordervolume invoiceqty invoiceprice
08.2017 10.000 14.90 149.00 10.000 14.90
私は入力データと同じ小数点区切り文字を持っていると私はこれを行う方法を見つけることができないこれらの数字が必要です。
したがって、私はあなたの誰かがそれを達成するためのアイデアを持っているかどうか尋ねていますか?
私は、Mac OS X上でパンダとのPython 3.5(0.19.1)とnumpyの(1.11.2)を使用しています
ありがとうございます!
ごめんなさい。私はあなたがそれらを変換したかったと思った。私の間違い、申し訳ありません! –
あなたがしようとした場合:f_mce3 [cols [1:]] = df_mc3 [cols [1:]]。replace( '。'、 '、')? –
ちょうど運が良ければそれを試しました。数値を含む列のデータ型は.replace()がない "float64"です。少なくとも、float(number = 1234.45 | number.replace( '。'、 '、')のエラーが発生する)を含む単一の変数に対してメソッドを使用しようとすると、私が言っていることです。 – Christian