通过从多个文件中随机抽样来创建数据帧

时间:2018-03-12 15:35:26

标签: python-2.7 pandas

我有一个文件夹,里面有几千万个记录制表符分隔文件。我想创建一个pandas数据框,我随机抽样从每个文件中说出2万条记录,然后将它们一起追加到数据框中。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

您可以读取特定文件夹中的所有文本文件。然后你可以使用pandas Dataframe.samplelink to docs)。

我提供了一个完全可重现的示例,其中包含两个使用200行创建的示例.txt文件。然后,我随机抽取十行,并将样本附加到最终的数据帧。

import pandas as pd
import numpy as np
import glob

# Change the path for the directory
directory = r'C:\some\example\folder'
# I create two test .txt files for demonstration purposes with 200 rows each
df_test = pd.DataFrame(np.random.randn(200, 2), columns=list('AB'))
df_test.to_csv(directory + r'\test_1.txt', sep='\t', index=False)
df_test.to_csv(directory + r'\test_2.txt', sep='\t', index=False)

df = pd.DataFrame()

for filename in glob.glob(directory + r'\*.txt'):
    df_full = pd.read_csv(filename, sep='\t')
    df_sample = df_full.sample(n=10)
    df = df.append(df_sample)