2017-07-02 7 views
-1

自分の入力として機能するcsvファイルが1つだけあります。PythonでCSVファイルを読み書きする方法

私は自分の出力を見つけるためにその入力を使います。私は複数の出力を持っているので、別のCSVファイルに出力が必要です。

誰でも私にそれを行う方法を提案できますか?ここで

コードです:

import urllib.request 
jd = {input 1} 
// 
    Some Codes to find output - a,b,c,d,e 
// 
** Code to write output to a csv file. 
** Repeat the code with next input of input csv file. 


Input CSV File has only a single column and is represented below: 
1 
2 
3 
4 
5 

Output would in a separate csv in a given below format : 
    It would be in multiple rows and multiple columns format. 

a b  c d  e  
+0

あなたの質問は本当にあいまいです。 'csv'モジュールを使用して、csvからデータをロードします。情報を処理し、同じモジュールを使用してデータを出力します。 –

+0

実際には、私はPythonで始まっていて、それを使う方法を知らない。また、1回の操作を完了した後、CSVから次の入力をどのように選択するのかを検討するのは難しいと感じています。 – user3476378

+1

単純なforループと 'os'モジュールで処理できるいくつかのフォルダ内のファイルを解析します。最初のコメントで私が言ったことをしてください。 [Official Documentation](https://docs.python.org/3/tutorial/index.html)から始めよう –

答えて

2

簡単な例である:

data.csv一列と複数の行とCSVです。

results.csvは、入力の平均値と中央値を含み、1行2列とCSV(平均は、第1列と第2列の中央値にある)である

例:

import numpy as np 
import pandas as pd 
import csv 

#load the data 
data = pd.read_csv("data.csv", header=None) 

#calculate things for the 1st column that has the data 
calculate_mean = [np.mean(data.loc[:,0])] 
calculate_median = [np.median(data.loc[:,0])] 
results = [calculate_mean, calculate_median] 

#write results to csv 
row = [] 
for result in results: 
    row.append(result) 

with open("results.csv", "wb") as file: 
    writer = csv.writer(file) 
    writer.writerow(row) 
+0

Hey Buddyありがとう、私はクエリを持っていた - 私は複数の行を持つ単一の列を持つ1つのcsvファイルがあります。各行について、私は操作を行い、いくつかの出力を見つける。これらの出力は、複数の列で別々のcsvファイルに保存する必要があります。私の入力csvファイルが完成するまでこれを繰り返したいと思います。 – user3476378

+1

本当に感謝します。 !!私はアプローチする方法です。あなたの答えに書いた擬似コード。 – user3476378

+0

@ user3476378最初のcsvファイルを読み込むためにpandasを使用していますか?また、あなたの結果はリストかnumpy配列ですか? – sera

1

私はあなたがSeries.iteritemsにより、ループ内のファイルに出力Seriesを書き込むためSeriesto_csvにファイルを読み込むためのread_csvが必要だと思います。ここ


#file content 
1 
3 
5 

s = pd.read_csv('file', squeeze=True, names=['a']) 
print (s) 
0 1 
1 3 
2 5 
Name: a, dtype: int64 

for i, val in s.iteritems(): 
    #print (val) 
    #some operation with scalar value val 
    df = pd.DataFrame({'a':np.arange(val)}) 
    df['a'] = df['a'] * 10 
    print (df) 
    #write to csv, file name by val 
    df.to_csv(str(val) + '.csv', index=False) 

    a 
0 0 

    a 
0 0 
1 10 
2 20 

    a 
0 0 
1 10 
2 20 
3 30 
4 40 
+0

で動作し、CSVからどのようにインポートするのですか?コードが入力値をどのように使用し、csvに書き込んだり、別の入力値を選んで戻ったりしますか?私は本当に混乱しています。 – user3476378

+0

Hmmm、複数の列入力ファイルがあり、すべての列に1つの出力ファイルが必要ですか? – jezrael

+0

これはパンダが不要なので、プレーンなPythonはより良い/より速いです。しかし、すべてのデータから 'DataFrame'(2次元配列)を作成し、次にそれらをpandas関数で処理する必要がある場合は、私のソリューションを使用してください。 – jezrael

1
擬似コードで

は、あなたがこのような何かやる:あなたが掘り始めるとを依頼することがより良いですので、今

for each_file in a_folder_that_contains_csv: # go through all the `inputs` - csv files 
    with open(each_file) as csv_file, open(other_file) as output_file: # open each csv file, and a new csv file 
     process_the_input_from_each_csv # process the data you read from the csv_file 
     export_to_output_file # export the data to the new csv file 

を、私は完全な作業例を書きません。あなたがいくつか持っているときに特定の質問。あなたは今質問しています:私はPythonを知らないので、これを書いてください。

+0

こんにちはありがとう、私はあなたのアドバイスをしました。誰も私のためにコードする必要はありません。私はちょうどこれにアプローチする方法の方法が必要でした。 – user3476378

関連する問題