如何使用Python将一系列重复的数据行转换为多个记录的列?

鲍勃·H

我们从测量多个零件的设备获得数据,并且将每个零件的多个测量结果输出到CSV文件中。我们将CSV文件读入具有以下结构的数据框:

PartNo  12
Meas1   45
Meas2   23
!END
PartNo  13
Meas1   63
Meas2   73
!END
PartNo  12
Meas1   82
Meas2   84
!END

“!END”标志指示来自某一部分的数据在哪里结束,而下一部分开始。我们想重塑数据,使其看起来像:

PartNo  Meas1   Meas2
12      45      23
13      63      73
12      82      84

(请注意,一个部分可能会出现多次-因此,没有一个字段在所有记录中都保证是唯一的。)

枢轴产生:

0   !END  Meas1  Meas2  PartNo
0    NaN    NaN    NaN    12.0
1    NaN   45.0    NaN     NaN
2    NaN    NaN   23.0     NaN
3    NaN    NaN    NaN     NaN
4    NaN    NaN    NaN    13.0
5    NaN   63.0    NaN     NaN
6    NaN    NaN   73.0     NaN
7    NaN    NaN    NaN     NaN
8    NaN    NaN    NaN    12.0
9    NaN   82.0    NaN     NaN
10   NaN    NaN   84.0     NaN
11   NaN    NaN    NaN     NaN

如何将这些行压缩为按零件号分组?
转置产生:

       0      1      2     3       4      5      6     7       8      9      10    11
0  PartNo  Meas1  Meas2  !END  PartNo  Meas1  Meas2  !END  PartNo  Meas1  Meas2  !END
1      12     45     23   NaN      13     63     73   NaN      12     82     84   NaN

如何每第4个项目重置行?

我可以在原始数据帧中创建一个新的索引列,然后遍历各行,使用!END递增每行的索引(然后使用索引对数据进行分组),但是似乎应该更加优雅形状转换函数来处理这种情况,或者Pivot或Transpose中有一个参数可以处理这种情况。我是Python初学者。这是完整的代码:

import pandas as pd
from io import StringIO

tdata = (
'PartNo,    12\n'
'Meas1, 45\n'
'Meas2, 23\n'
'!END\n'
'PartNo,    13\n'
'Meas1, 63\n'
'Meas2, 73\n'
'!END\n'
'PartNo,    12\n'
'Meas1, 82\n'
'Meas2, 84\n'
'!END\n')
tdf = pd.read_csv(StringIO(tdata), header=None)
print(tdf)
print(tdf.pivot(index=None, columns=0, values=1))
print(tdf.T)
扬·穆西尔
#having dataframe x:
>>> x = pd.DataFrame([['PartNo',12],['Meas1',45],['Meas2',23],['!END',''],['PartNo',13],['Meas1',63],['Meas2',73],['!END',''],['PartNo',12],['Meas1',82],['Meas2',84],['!END','']])
>>> x
         0   1
0   PartNo  12
1    Meas1  45
2    Meas2  23
3     !END    
4   PartNo  13
5    Meas1  63
6    Meas2  73
7     !END    
8   PartNo  12
9    Meas1  82
10   Meas2  84
11    !END    

#grouping by first column, and aggregating values to list. First column then contains Series that you want. By converting each list in this series to series, dataframe is created, then you just need to transpose
>>> df = x.groupby(0).agg(lambda x: list(x))[1].apply(lambda x: pd.Series(x)).transpose()
>>> df[['PartNo','Meas1','Meas2']]
0 PartNo Meas1 Meas2
0     12    45    23
1     13    63    73
2     12    82    84

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将多个数据框列转换为一系列

来自分类Dev

如何将一系列数值数据转换为特定的分类数据?

来自分类Dev

熊猫:使用SimpleImputer可以将数据帧转换为一系列数据吗?

来自分类Dev

将 Spark 数据帧 Groupby 转换为一系列数据帧

来自分类Dev

将一系列嵌套的 promise 转换为 @Effect

来自分类Dev

在Python中将一系列数字转换为数组

来自分类Dev

在 Python 中将数组转换为一系列参数

来自分类Dev

如何将一系列索引/类别转换为分类数组

来自分类Dev

如何将一系列数组转换为2D numpy数组

来自分类Dev

如何将一系列if / else if / else if /关系链转换为线性循环代码

来自分类Dev

如何将一系列嵌套列表转换为Miller Columns?

来自分类Dev

如何将一系列unicode字符转换为可读文本?

来自分类Dev

如何通过一系列切换将输入转换为速度和方向?

来自分类Dev

如何将一系列unicode字符转换为可读文本?

来自分类Dev

如何将div中的内容转换为一系列变量?

来自分类Dev

如何通过Mac上的终端将PDF转换为一系列图像(JPG或PNG)?

来自分类Dev

如何将一系列 PNG 图像转换为 YouTube 视频?

来自分类Dev

Python和Pandas:将一系列datetime值转换为连续的日索引

来自分类Dev

如何将一系列键替换为使用 javascript 显示的字符串?

来自分类Dev

如何在python中搜索一系列行?

来自分类Dev

如何使用Spark处理一系列HBase行?

来自分类Dev

如何使用Javascript或Jquery将一系列JSON数据附加到HTML?

来自分类Dev

如何将一系列数学约束转换为 SAT 或 SMT 问题并得到答案?

来自分类Dev

将一系列编号为PNG的文件转换为GIF动画的工具?

来自分类Dev

大熊猫:将一系列DataFrame转换为单个DataFrame

来自分类Dev

将一系列字符串转换为数组并替换值

来自分类Dev

将一系列编号为PNG的文件转换为动画GIF的工具?

来自分类Dev

将一系列ppm图像转换为avi视频

来自分类Dev

将一系列位图图像转换为灰度

Related 相关文章

  1. 1

    将多个数据框列转换为一系列

  2. 2

    如何将一系列数值数据转换为特定的分类数据?

  3. 3

    熊猫:使用SimpleImputer可以将数据帧转换为一系列数据吗?

  4. 4

    将 Spark 数据帧 Groupby 转换为一系列数据帧

  5. 5

    将一系列嵌套的 promise 转换为 @Effect

  6. 6

    在Python中将一系列数字转换为数组

  7. 7

    在 Python 中将数组转换为一系列参数

  8. 8

    如何将一系列索引/类别转换为分类数组

  9. 9

    如何将一系列数组转换为2D numpy数组

  10. 10

    如何将一系列if / else if / else if /关系链转换为线性循环代码

  11. 11

    如何将一系列嵌套列表转换为Miller Columns?

  12. 12

    如何将一系列unicode字符转换为可读文本?

  13. 13

    如何通过一系列切换将输入转换为速度和方向?

  14. 14

    如何将一系列unicode字符转换为可读文本?

  15. 15

    如何将div中的内容转换为一系列变量?

  16. 16

    如何通过Mac上的终端将PDF转换为一系列图像(JPG或PNG)?

  17. 17

    如何将一系列 PNG 图像转换为 YouTube 视频?

  18. 18

    Python和Pandas:将一系列datetime值转换为连续的日索引

  19. 19

    如何将一系列键替换为使用 javascript 显示的字符串?

  20. 20

    如何在python中搜索一系列行?

  21. 21

    如何使用Spark处理一系列HBase行?

  22. 22

    如何使用Javascript或Jquery将一系列JSON数据附加到HTML?

  23. 23

    如何将一系列数学约束转换为 SAT 或 SMT 问题并得到答案?

  24. 24

    将一系列编号为PNG的文件转换为GIF动画的工具?

  25. 25

    大熊猫:将一系列DataFrame转换为单个DataFrame

  26. 26

    将一系列字符串转换为数组并替换值

  27. 27

    将一系列编号为PNG的文件转换为动画GIF的工具?

  28. 28

    将一系列ppm图像转换为avi视频

  29. 29

    将一系列位图图像转换为灰度

热门标签

归档