很抱歉,如果这是一个重复的问题,我搜索了一段时间,就这么简单,我找不到类似的问题。我希望仅基于Pandas数据框中的一列创建一个数据框(在我的情况下为5x3)。我已经尝试了pd.DataFrame和pd.concat,但似乎都没有用。下面的示例:
df = pd.DataFrame([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
#using pd.DataFrame
table_data = {'Column1': df.iloc[0:5,0],
'Column2': df.iloc[5:10,0],
'Column3': df.iloc[10:15,0]}
pd.DataFrame(table_data)
#different method using pd.DataFrame
pd.DataFrame([df.iloc[0:5,0],
df.iloc[5:10,0],
df.iloc[10:15,0]],
columns = ['Column1', 'Column2', 'Column3'])
#using pd.concat
pd.concat([df.iloc[0:5,0], df.iloc[5:10,0], df.iloc[10:15,0]],
axis=1, keys=['Column1', 'Column2', 'Column3'])
请注意,我的实际起始数据框有不止一列。当我使用索引而不是简单地对应该在每一列中的数字进行硬编码时,问题似乎正在发生。这似乎很简单,但我似乎找不到任何解决方法。任何帮助表示赞赏。
答案 0 :(得分:0)
赞:
In [591]: import numpy as np
In [585]: d = pd.DataFrame()
In [553]: df_split = np.array_split(df, 5) ## Split df into equal parts of 5 rows each
In [586]: for i in df_split:
...: d = pd.concat([d,i.reset_index(drop=True)], axis=1)
...:
In [588]: d.columns = ['Col1', 'Col2', 'Col3']
In [589]: d
Out[589]:
Col1 Col2 Col3
0 1 6 11
1 2 7 12
2 3 8 13
3 4 9 14
4 5 10 15