用python拆分数据帧

用python拆分数据帧,python,pandas,split,Python,Pandas,Split,我想做的很简单,用其他语言。我想拆分一个表,使用“for”循环每五行拆分一个数据帧 我的想法是,我有一个dataframe,它每隔一段时间就添加一行,就像用不同的问题回答表单一样,每个答案都添加到一个特定的列中,就像谷歌表单和电子表格一样 我尝试了以下几点: import pandas as pd dp=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] df1=pd.DataFrame(data=dp) for i in range(0, len(dp)):

我想做的很简单,用其他语言。我想拆分一个表,使用“for”循环每五行拆分一个数据帧

我的想法是,我有一个dataframe,它每隔一段时间就添加一行,就像用不同的问题回答表单一样,每个答案都添加到一个特定的列中,就像谷歌表单和电子表格一样

我尝试了以下几点:

import pandas as pd
dp=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
df1=pd.DataFrame(data=dp)
for i in range(0, len(dp)):
   if i%5==0:
      df = df1.iloc[i,:]
      print(df)          
print(df)
我知道这并不多,但这是一次尝试。现在,我不能做的是每次循环到达
I mod 5==0
行时用新的数据帧创建一个新变量



我认为您正在尝试使用已知数量的字段将平面列表转换为行和列

我会这样做:

import numpy as np
import pandas as pd

numFields = 3   # this is five in your case
fieldNames = ['color', 'animal', 'amphibian'] # totally optional 

# this is your 'dp'
inputData = ['brown', 'dog','false','green', 'toad','true']

flatDataArray = np.asarray(inputData)

reshapedData = flatDataArray.reshape(-1, numFields)

df = pd.DataFrame(reshapedData, columns=fieldNames) # you only need 'columns' if you want to name fields

print(df)
其中:

    color   animal  amphibian
0   brown   dog     false
1   green   toad    true
--更新--

从上面的评论中,我看到您想要任意数量的数据帧——每五行组一个。为什么不创建一个数据帧列表(即,您拥有
dfs[0]
dfs[1]

其中打印:

   0
0  brown
1    dog
2  false

   0
0  green
1   toad
2   true

不清楚你想要的输出是什么。您想在varables中存储大量单独的五行数据帧吗?或者您正在尝试将平面列表转换为具有行和列的单个数据帧?也许你只是想在屏幕上一次打印五行,我理解你的困惑。我想做的是第一件事。我想生成每五行存储一个数据帧的变量。例如:我希望第0行到第4行存储在名为V1的变量中,第5行到第9行存储在V2中,等等。可以这样做吗?谢谢你的澄清,Jason。请参阅下面我的更新答案。我创建了一个数据帧列表,
dfs
。这样,dfs[0]是第一个数据帧,dfs[1]是第二个数据帧,依此类推。。。
    color   animal  amphibian
0   brown   dog     false
1   green   toad    true
# continuing with from where the previous code left off...

dfs = []

for group in reshapedData:
     dfs.append(pd.DataFrame(group))

for df in dfs:
    print(df)
   0
0  brown
1    dog
2  false

   0
0  green
1   toad
2   true