[スコア]列の下のCSVファイルに追加する配列に4つの数値のセットを保存しました。
with open('Player.csv', 'ab') as csvfile:
fieldnames = ['Score']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for i in range(0, l):
writer.writerow({'Score': score[i]})
ファイルに追加されますが、これにより、新しい列ではなく新しい行が追加されます。誰かがそれを新しい列に追加するように導くことができますか?
おそらく最も簡単な解決策は、パンダを使用することです。やり過ぎですが、一般的に、CSV操作は、単純な読み取り/書き込みを超えてはるかにクリーンです。
次のようなCSVファイルがあるとします。
ASSETNUM ASSETTAG ASSETTYPE AUTOWOGEN
cent45 9164 0
cent45 9164 0
次に、列を追加するための関連コードは次のようになります。
import pandas as pd
df = pd.read_csv('path/to/csv.csv', delimiter='\t')
# this line creates a new column, which is a Pandas series.
new_column = df['AUTOWOGEN'] + 1
# we then add the series to the dataframe, which holds our parsed CSV file
df['NewColumn'] = new_column
# save the dataframe to CSV
df.to_csv('path/to/file.csv', sep='\t')
これにより、新しい列が追加され、適切にスケーリングされ、使いやすくなります。結果のCSVファイルは次のようになります。
ASSETNUM ASSETTAG ASSETTYPE AUTOWOGEN NewColumn
0 cent45 9164 0 1
1 cent45 9164 0 1
これを同じ目的のCSVモジュールコードと比較してください(ここから変更):
with open('path/to/csv.csv', 'r') as fin:
reader = csv.reader(fin, delimiter='\t')
with open('new_'+csvfile, 'w') as fout:
writer = csv.writer(fout, delimiter='\t')
# set headers here, grabbing headers from reader first
writer.writerow(next(reader) + ['NewColumn']
for row in reader:
# use whatever index for the value, or however you want to construct your new value
new_value = reader[-1] + 1
row.append(new_value)
writer.writerow(row)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加