python - 将两列合并为一列,同时尊重升序
问题描述
您好,我想通过“Timestamp”和“Timestamp+0.4”的外部合并来合并我的“Timestamp”列。此外,我希望输入中的值仍然对应于这个新的“时间戳”合并列,并且在未定义值的地方具有 NaN(例如“输入”列中的 0.6 = NaN)
我的预期输出是这样的:
您知道如何实现这一目标吗?
这是创建数据框的代码
df = pd.DataFrame({'Timestamp':[0.2,0.4,0.8,1.2,1.4,1.6,2.0,2.4],
'input':[10,20,40,5,15,25,0,20]})
df["Timestamp+0.4"] = df["Timestamp"]+0.4
非常感谢 !
解决方案
您可以使用concat沿特定轴连接数据帧。之后仅使用列作为参数删除重复项Timestamp
,然后最后再次按Timestamp
列对值进行排序。
import pandas as pd
df = pd.DataFrame({'Timestamp':[0.2,0.4,0.8,1.2,1.4,1.6,2.0,2.4],
'input': [10, 20, 40, 5, 15, 25, 0, 20]})
df1 = pd.DataFrame(df["Timestamp"]+0.4)
df = pd.concat([df, df1])
df["Timestamp"] = round(df["Timestamp"], 8)
df = df.drop_duplicates(subset=["Timestamp"], keep="first")
df = df.sort_values(["Timestamp"], ignore_index=True)
print(df)
来自df的输出
Timestamp input
0 0.2 10.0
1 0.4 20.0
2 0.6 NaN
3 0.8 40.0
4 1.2 5.0
5 1.4 15.0
6 1.6 25.0
7 1.8 NaN
8 2.0 0.0
9 2.4 20.0
10 2.8 NaN
推荐阅读
- python - 连接数据框列表并包含原始数据框名称作为键
- python - 为什么我收到 ImportError: cannot import name 'PieChart' from 'openpyxl'
- .net-core - Serilog.Sinks.EventLog - 事件 ID
- visual-studio-code - VS Code:最新更新后,默认终端为Power Shell,忽略默认设置
- powershell - 导出用户和组以及他们是否是组的成员
- azure-cosmosdb - 在 Gremlin 中的单个顶点中存储多个列表 - Cosmos DB
- javascript - 我如何在 wordpress ajax 动作函数中使用 jquery?
- node.js - 部署到heroku时nodemailer不发送电子邮件
- wordpress - 如何在 Wordpress 中配置 SMS 网关?
- winapi - 如何在主窗口外创建窗口子窗口