首页 > 解决方案 > 重新排序数据并创建新的数据文件

问题描述

我对编程有点陌生,它不是我的分支,但我需要这个任务在几天内分析我的数据,现在没有足够的时间专门研究 python。假设我有如下所示的数据文件:

0 2
0.5 8.4
1 354.8
0 41
0.5 2
1 48.8

现在我需要从这个看起来像这样的新数据文件创建:

0 2 41
0.5 8.4 2
1 354.8 48.8

每当第一列中的值为零时,它将开始将第二列中的数据写入新列。第一列中的数字序列总是重复的。这只是一个特例,会有更多的重复序列0、0.5和1。

我很乐意为这项任务寻求一些帮助,或者给我一些指导如何在 python 中解决它。

标签: python

解决方案


使用pandas. 假设列上的名称:

df.columns = ['a', 'b']
df

    a     b
0  0.0    2.0
1  0.5    8.4
2  1.0  354.8
3  0.0   41.0
4  0.5    2.0
5  1.0   48.8

您可以使用:

df2 = df.groupby(['a'])['b'].apply(list).reset_index() # group by "a", get grouped "b" in list format

并得到:

     a              b
0  0.0    [2.0, 41.0]
1  0.5     [8.4, 2.0]
2  1.0  [354.8, 48.8]

最后提取行数据:

Row_list =[] 
for index, rows in df2.iterrows(): 
    my_list =[rows.a, rows.b]
    my_list= str(my_list).replace('[','').replace(']','')
    Row_list.append(my_list) 
 print(Row_list)
 ['0.0, 2.0, 41.0', '0.5, 8.4, 2.0', '1.0, 354.8, 48.8']

推荐阅读