在Python中,如何构造一个允许我读取txt文件(以制表符分隔)并将每1000行存储为自己的数据帧的循环?

在Python中,如何构造一个允许我读取txt文件(以制表符分隔)并将每1000行存储为自己的数据帧的循环?,python,pandas,Python,Pandas,下面是我的数据示例,有十行标题,然后正好有1000行数据,然后重复30个周期(这些是实验室实验的试验)。我有8个相同格式的文件,我想提取每个批,这样我就可以做一些事情。如何创建一个循环,每次创建一个新的数据帧来存储新行 Channels 1 Samples 1000 Date 2020/02/12 Time 10:11:36.6395705499426038443 Y_Unit_Label Volts X_Dimension Time

下面是我的数据示例,有十行标题,然后正好有1000行数据,然后重复30个周期(这些是实验室实验的试验)。我有8个相同格式的文件,我想提取每个批,这样我就可以做一些事情。如何创建一个循环,每次创建一个新的数据帧来存储新行

Channels    1   
Samples 1000    
Date    2020/02/12  
Time    10:11:36.6395705499426038443    
Y_Unit_Label    Volts   
X_Dimension Time    
X0  0.0000000000000000E+0   
Delta_X 0.001000    
***End_of_Header***     
X_Value Voltage Comment
0.000000    4.930675    4.96V\0A69.0 cm\0A6.9 degrees
0.001000    4.934949
0.002000    4.931990
0.003000    4.923443
我试图做一些类似下面代码的事情,但我不知道如何让pandas为每个迭代创建一个新的数据帧

collection=['Rawdata01.txt','Rawdata02.txt','Rawdata03.txt']
result = pd.DataFrame()
for i in collection:
    j=0
    mydf = pd.read_csv(i,sep='\t',header=(0),index_col=False)
    for row in mydf.iterrows():
        result = csv[1000*j + 10*(j+1):1000*(j+1) + 10*(j+1)] # how to get it to make newdataframes
        print(result.head())
        j=j+1
我已经非常接近了,但我一直在思考如何为每个批次或一个大批次获取单独的数据帧。在这一点上,两者都将起作用。在这件事上的任何帮助都将不胜感激

在这一行之后:

mydf = pd.read_csv(i,sep='\t',header=(0),index_col=False)
您已经在单个数据帧中具有以制表符分隔的数据。要将其分成1000行,可以尝试以下方法:

sub_frames = [mydf.iloc[startrow:startrow+1000] for startrow in range(0, len(mydf), 1000)]

然后有一个数据帧列表,每个数据帧有1000行(最后一行除外)。数据帧的
iloc
是从更大的数据帧中提取行。

您看过中的
chunk\u size
参数了吗?我认为这正是您想要的,只是效率更高。我不认为您应该将整个文件读入数据帧,您需要先清理数据。