2016-09-05 12 views
0

私は次のコードを使用して新しいCSVファイルにファイルをCSVのランダムなサブセットをエクスポートしようとしています:新しいCSVファイルへのCSVファイルからランダムにサンプルをエクスポートする - 出力が乱雑である

with open("DepressionEffexor.csv", "r") as effexor: 
    lines = [line for line in effexor] 
    random_choice = random.sample(lines, 229) 

with open("effexorSample.csv", "w") as sample: 
    sample.write("\n".join(random_choice)) 

をしかし、問題は、出力CSVファイルが非常に乱雑であるということです。たとえば、あるフィールドのデータの一部が次の行に印刷されました。どうすれば問題を解決できますか?さらに、私はCSVではなくこの問題に対してどのようにパンダを使うことができるかを知りたい。ありがとう!

df = pandas.read_csv("csvfile.csv") 
sample = df.sample(n) 
sample.to_csv("sample.csv") 

をあなたはそれをさらに短くすることができます:

df.sample(n).to_csv("csvfile.csv") 

dataframe.sampleがするようPandas IO docsは、利用可能大いにより多くの情報とオプションを持っているあなたはCSVがパンダに読んでいたと仮定すると、

+0

あなたは['sample'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sample.html#pandas.DataFrame.sample)を見ましたか? – EdChum

+1

どうしたらいいのですか?shuf -n 229 DepressionEffexor.csv> effexorSample.csv' –

+0

@Loïc:OPのコードのように、ヘッダーを処理していない場合、要素内にLFがある場合は処理しません。 OPの説明はそれがあるように見えるようにする。 – DSM

答えて

3

方法。あなたが欲しいものを選択するために、後でデータフレームをスプライスすることができます

import pandas as pd 

#Read the csv file and store it as a dataframe 
df = pd.read_csv('DepressionEffexor.csv') 

#Shuffle the dataframe and store it 
df_shuffled = df.iloc[np.random.permutation(len(df))] 

#You can reset the index with the following 
df_shuffled.reset_index(drop=True) 

:パンダを使用して

0

、これはに変換されます。

関連する問題