用python拆分数据帧
我想做的很简单,用其他语言。我想拆分一个表,使用“for”循环每五行拆分一个数据帧 我的想法是,我有一个dataframe,它每隔一段时间就添加一行,就像用不同的问题回答表单一样,每个答案都添加到一个特定的列中,就像谷歌表单和电子表格一样 我尝试了以下几点:用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)):
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