python - 分离重复列值
问题描述
这个问题应该是以前问过的。。。
我有记录值的长文件,例如时间、温度等。基于输入函数所在的某个步骤。“步骤”列记录当前步骤,在这种情况下为 1 到 20 个步骤。这些步骤可以重复如下(数据的一小部分):
import pandas as pd
raw_data = [{'Date': '1-10-19', 'Read': 1.1, 'Step': 1},
{'Date': '2-10-19', 'Read': 1.11, 'Step': 1},
{'Date': '3-10-19', 'Read': 10.1, 'Step': 2},
{'Date': '4-10-19', 'Read': 10.11, 'Step': 2},
{'Date': '5-10-19', 'Read': 1.2, 'Step': 1},
{'Date': '6-10-19', 'Read': 1.21, 'Step': 1},
{'Date': '7-10-19', 'Read': 10.2, 'Step': 2},
{'Date': '8-10-19', 'Read': 10.21, 'Step': 2}]
df = pd.DataFrame(raw_data)
Date Read Step
0 1-10-19 1.10 1
1 2-10-19 1.11 1
2 3-10-19 10.10 2
3 4-10-19 10.11 2
4 5-10-19 1.20 1
5 6-10-19 1.21 1
6 7-10-19 10.20 2
7 8-10-19 10.21 2
我需要随着时间的推移跟踪 Step 序列组,如下所示:
Date Read Step Step_New
0 1-10-19 1.10 1 1.1
1 2-10-19 1.11 1 1.1
2 3-10-19 10.10 2 2.1
3 4-10-19 10.11 2 2.1
4 5-10-19 1.20 1 1.2
5 6-10-19 1.21 1 1.2
6 7-10-19 10.20 2 2.2
7 8-10-19 10.21 2 2.2
我应该如何添加这个新列?最后,我将在groupby
本专栏中对新的单个步骤进行一些统计。
解决方案
这是跟踪每个 Step 组的小数步长的替代方法:
Date Read Step
0 1-10-19 1.10 1
1 2-10-19 1.11 1
2 3-10-19 10.10 2
3 4-10-19 10.11 2
4 5-10-19 1.20 1
5 6-10-19 1.21 1
6 7-10-19 10.20 2
7 8-10-19 10.21 2
8 8-10-19 100.10 3
9 8-10-19 100.11 3
10 6-10-19 1.22 1
11 6-10-19 1.31 1
df["Step_New"] = df.Step + df.groupby('Step')['Read'].apply(lambda x: round(x - x.astype(int), 1))
输出:
Date Read Step Step_New
0 1-10-19 1.10 1 1.1
1 2-10-19 1.11 1 1.1
2 3-10-19 10.10 2 2.1
3 4-10-19 10.11 2 2.1
4 5-10-19 1.20 1 1.2
5 6-10-19 1.21 1 1.2
6 7-10-19 10.20 2 2.2
7 8-10-19 10.21 2 2.2
8 8-10-19 100.10 3 3.1
9 8-10-19 100.11 3 3.1
10 6-10-19 1.22 1 1.2
11 6-10-19 1.31 1 1.3
推荐阅读
- python - 使用 groupby 和 lambda 将 Pandas DataFrame 转换为具有多边形几何的 GeoDataFrame
- html - 将 HTLM 导出为 .doc 或 .docx 时如何获取样式
- docker - 我可以在托管 Kubuntu 20 时显示 docker 的混合成功/错误通知吗?
- qt - 鼠标悬停时更改拆分器的背景颜色
- node.js - 运行笑话测试时出错 - 无法读取 runtime.json
- reactjs - 无法使用自定义 Material UI 主题
- django - Django Table前向填充缺失值
- amazon-web-services - 无需 AWS Incognito 即可使用公有/私有访问进行 Appsync 身份验证
- qt - QJSEngine 全局函数
- google-cloud-firestore - 如果我只在 firestore 数据库的多个字段中更新文档的单个字段,“request.resource.data”将包含什么?