私は10個のCSVファイルをpythonで作成しました。各CSVファイルには約330Kライン(行)を有し、各列は次のようになりますいくつかのcsvファイルを特定の基準でPythonを使ってマージする
0.334,0.0232,0.00086,1.642e-05
[空白行]
0.334,0.0232,0.00086,1.742電子05
[空白行]
...
(Pythonは、各行の後に空白行に書いて、なぜ私はわかりません)。
Parameters1、Parameters2 ....という名前の10個のファイルをマージしようとしています。パラメータ10は、空白の行を除外し、2番目の列に0.1より大きい値が含まれている場合にのみ書き込みます。
fout = open("C:\Anaconda3\Sr90NHPModelParameters\Parameters100.csv","a")
for num in range(1,11):
for line in open("C:\Anaconda3\Sr90NHPModelParameters\Parameters"+str(num)+".csv"):
if line[0]!="":
if line[1]>0.1:
fout.write(line)
else:
pass
else:
pass
fout.close()
上記のコードを実行すると、str()> float()のような順序付け不可能な型が発生します。
と私が代わりに私がとValueErrorを得る
if float(line[1])>0.1:
に
を変更することで、同じコードを実行した場合:float型に文字列を変換できませんでした: ''
私はそれがなぜ、わからないのですか?私は持っています '。'それは数の一部であり、例えば、0.334または1.642e-05である。
ありがとうございました!
行の2番目の*文字はピリオドです。あなたはそれをフィールドに分割していません。あなたがCSVを使っているなら、なぜ 'csv'を使わないのでしょうか? – jonrsharpe
@jonrsharpe、私はまだPythonの学習段階にあります。文字の代わりにフィールドに分割する方法を明確にしてください。ご協力いただきありがとうございます。 – DPdl
それからgoogle "Python CSV"と読んで始めてください!上記で言及した組み込みモジュールは、賢明な出発点になります。 – jonrsharpe