python - 将不同大小的数据集分割成单独的数据帧

标签 python pandas

我是 Python 和 pandas 的新手。 我有一个从某些测量设备导出的 .csv 文件,该文件在一个 .csv 文件中提供了一天中进行的所有测量结果。 我已经成功地生成了一个相当整洁的数据框,但我无法解决。如何分离测量?

数据框的结构如下:

+-------------------------+-------------------+--------------------+-----------+------+-------------+------+--------------+
| SetupTitle              | measurement_type  | nan                | nan       | nan  | nan         | nan  | nan      |
| MetaData                | TestRecord        | measurement number | nan       | nan  | nan         | nan  | nan      |
| DataName                | voltage 1         | voltage 2          | current 1 | ...  |         |      | data name 8  |
| DataValues              | data 1            | ...                |           |      |             |      | data 8   |
| ...                     |                   |                    |           |      |             |      |          |
| hundreds of data points |                   |                    |           |      |             |      |          |
| ...                     |                   |                    |           |      |             |      |          |
| SetupTitle              | measurement type  | nan                | nan       | nan  | nan         | nan  | nan      |
| etc...                  |                   |                    |           |      |             |      |          |
+-------------------------+-------------------+--------------------+-----------+------+-------------+------+--------------+

我想通过使用“SetupTitle”值作为起点将每个测量结果拆分为单独的数据帧,但我不确定如何迭代该列或如何从每个数据帧中提取其余的列。

我认为一旦将它们分开,我将能够删除设置行和元数据行并使用它们来命名数据框,这将为我提供一个不错的数据集。

最佳答案

您可以使用cumsum来计算特定值的出现次数,并使用groupby来分隔它们:

s = df[name_of_column].eq('SetupTitle').cumsum()

那么每次列中出现 SetupTitle 时,s 的值都会发生变化。您可以通过以下方式访问这些 block :

# say we want to store them in a dict:
blocks = {}

for num_block, block in df.groupby(s):
    # do whatever you want with the group
    blocks[num_block] = block

关于python - 将不同大小的数据集分割成单独的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56598089/

相关文章:

python - 每行获取第一个非空值

python - Python 函数列表,按照它们在模块中的定义顺序

python - Pandas 力矩阵乘法

python - Python中不同大小数据帧的条件计算

python - Django REST Framework 教程 1 中的导入错误 : Serialization

python - 将组上的顺序计数器列添加到 pandas 数据帧

python - 如何在不设置索引的情况下旋转数据框?

c++ - 子进程的异步双向 IO 重定向

Python CSV 到 JSON 解析器在输出中添加引号

python - Pandas DataFrame.Groupby.Agg 字典中的自定义列选择