0

38 列のデータを含む csv があります。方法を見つけたいのは、列 11 を列 38 ごとに分割し、このデータを各行の末尾に追加することだけです。csv のタイトル行 (1 行目) が抜けています。

これを実行できるコードのスニペットを取得できれば、同じコードを操作して多くの同様の機能を実行できるようになります。

私の試みには、別の目的のために設計されたコードの編集が含まれていました。下記参照:

from collections import defaultdict

class_col = 11
data_col = 38

# Read in the data
with open('test.csv', 'r') as f:
    # if you have a header on the file
    # header = f.readline().strip().split(',')
    data = [line.strip().split(',') for line in f]

# Append the relevant sum to the end of each row
for row in xrange(len(data)):
    data[row].append(int(class_col)/int(data_col))

# Write the results to a new csv file
with open('testMODIFIED2.csv', 'w') as nf:
    nf.write('\n'.join(','.join(row) for row in data))

どんな助けでも大歓迎です。ありがとう

4

2 に答える 2

0

パンダを使う:

import pandas
df = pandas.read_csv('test.csv') #assumes header row exists
df['FRACTION'] = 1.0*df['CLASS']/df['DATA'] #by default new columns are appended to the end
df.to_csv('out.csv')
于 2014-03-07T19:46:39.937 に答える