在Pandas

时间:2017-09-22 11:08:22

标签: python pandas dataframe

所以我有这个数据框:

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行并手动执行此操作?

1 个答案:

答案 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