所以我有这个数据框:
df = pd.DataFrame(['Function_1','internal_prop_1','external_prop_1','Function_2','internal_prop_2','external_prop_2','Function_3','internal_prop_3','external_prop_3'], columns=['Raw_info'])
Raw_info
0 Function_1
1 internal_prop_1
2 external_prop_1
3 Function_2
4 internal_prop_2
5 external_prop_2
6 Function_3
7 internal_prop_3
8 external_prop_3
我基本上想要使用以下格式创建一个新的数据框
Function_name prop1 prop2
0 Function_1 internal_prop_1 external_prop_1
1 Function_2 internal_prop_2 external_prop_2
2 Function_3 internal_prop_3 external_prop_3
换句话说,我想将每组三行拆分成不同的列。我得到的最接近的是this answer并没有解决我的问题。有没有Pythonic或有效的方法在Pandas中执行此操作,而不是迭代每个备用3行并手动执行此操作?
答案 0 :(得分:2)
检索df.Raw_info.values
,重新整形数组并使用pd.DataFrame
构造函数创建新的数据框。
df = pd.DataFrame(df.Raw_info.values.reshape(-1, 3),
columns=['Function_name', 'prop1', 'prop2'])
print(df)
Function_name prop1 prop2
0 Function_1 internal_prop_1 external_prop_1
1 Function_2 internal_prop_2 external_prop_2
2 Function_3 internal_prop_3 external_prop_3