将某个大的dataframe进行groupby后,将某列中的n-1个分递增的增加0.1

文章介绍了如何使用Python中的pandas和numpy库对DataFrame进行操作,包括按geom分组、过滤非重要节点(type=0),以及在必要时调整重要节点(type!=0)的坐标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import pandas as pd
import numpy as np

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
d = [10, 21, 10, 21, 21, 10, 23, 23, 25, 25]
f = [0, 1, 1, 2, 0, 0, 2, 2, 0, 0]
df = pd.DataFrame({'id': a, 'geom': d, 'type': f})
#
df = df[['id', 'geom', 'type']]
df_group = df.groupby('geom')
for i, j in df_group:
    print("j:", j)
    unique_values = j['type'].unique()
    # 第一种情况:都是非重要的节点
    if len(unique_values) == 1 and unique_values[0] == 0:
        print("将这个dataframe只保留一条数据")
    else:
        # 1、先将type为节点的数据删除(数据库中删除)
        df_normal = j[j['type'] == 0]
        print("df_normal:", df_normal)

        # 2、判断df_的大小,如果只有一条的不用管,大于一条的修改坐标
        df_ = j[j['type'] != 0]
        print("df_:",df_)
        if len(df_) != 1:
            number = np.concatenate(([0], np.arange(0.1, (df_.shape[0] - 1) * 0.1 + 0.1, 0.1)))
            df_['geom'] = df_['geom'] + number
            print("df_更改后:", df_)

结果

j:    id  geom  type
0   1    10     0
2   3    10     1
5   6    10     0
df_normal:    id  geom  type
0   1    10     0
5   6    10     0
df_:    id  geom  type
2   3    10     1
j:    id  geom  type
1   2    21     1
3   4    21     2
4   5    21     0
df_normal:    id  geom  type
4   5    21     0
df_:    id  geom  type
1   2    21     1
3   4    21     2
df_更改后:    id  geom  type
1   2  21.0     1
3   4  21.1     2
j:    id  geom  type
6   7    23     2
7   8    23     2
df_normal: Empty DataFrame
Columns: [id, geom, type]
Index: []
df_:    id  geom  type
6   7    23     2
7   8    23     2
df_更改后:    id  geom  type
6   7  23.0     2
7   8  23.1     2
j:    id  geom  type
8   9    25     0
9  10    25     0
将这个dataframe只保留一条数据
模块 5:工业应用场景的数据析问题 内容 5.1:数据处理实验 ETL 要求:以工业领域为背景,用 Python 生成一个模拟数据集,并用 Python 语言完成 ETL 操作,给出流程的详细解释。 在工业领域中,数据可能来自多个来源,如传感器、机器运行日志、质量检 查结果等。我们可以假设有一个示例数据集,其中包含以下信息: 机器 ID 传感器测量的温度(单位:摄氏度) 传感器测量的湿度(单位:百比) 时间戳 机器状态(正常、故障) 质量检查结果(通过/未通过) 示例数据集 (CSV 格式) csv Copy code MachineID,Temperature,Humidity,Timestamp,MachineStatus,QualityCheck M001,45.5,30.0,2024-08-01 08:00:00,Normal,Pass M002,60.0,40.5,2024-08-01 08:05:00,Fault,Fail M003,50.0,35.0,2024-08-01 08:10:00,Normal,Pass M001,48.5,33.0,2024-08-01 08:15:00,Normal,Pass M002,62.5,42.0,2024-08-01 08:20:00,Fault,Fail M003,51.0,36.0,2024-08-01 08:25:00,Normal,Pass ETL 操作流程 ETL(Extract, Transform, Load)是数据处理的核心步骤,通常包括以下三个阶段: 1. 抽取 (Extract) 抽取数据阶段可以从多个数据源中获取原始数据,如 CSV 文件、数据库或传感 器系统。这个阶段的主要目的是将数据导入系统,以便进一步处理。 2. 转换 (Transform转换阶段对原始数据进行清洗和处理,以确保其一致性和质量。典型的转换操作 包括:  处理缺失值  转换数据类型  数据标准化(例如,将温度转换为摄氏度或华氏度)  计算派生(如温度的平均值、湿度的变化率)  根据业务规则筛选和过滤数据 3. 加载 (Load) 将转换后的数据加载到目标系统,如数据仓库、数据库或析平台,以供进一步 的析和可视化使用。
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值