python - 同步两个时间数据帧的最有效方法是什么
问题描述
我有一个这样的数据框:
时间 | 数据1 | 时间 | 数据2 |
---|---|---|---|
0 | 0 | 0 | 0 |
0.1 | 1 | 0.2 | 1 |
0.2 | 1 | / | / |
我想得到这个结果:
时间 | 数据1 | 数据2 |
---|---|---|
0 | 0 | 0 |
0.1 | 1 | 钠 |
0.2 | 1 | 1 |
我可以使用什么样的代码来同步所有数据帧?我使用了几个熊猫功能,但它们都不起作用,你能帮帮我吗?
谢谢
解决方案
IIUC 您首先将 2 个不同数据帧中的 DataFrame 与相应的 Time 和 Data 列分开,然后将 Time 列设置为每个数据帧的索引并将两者连接起来。这仅在两个 Time 列的类型相同时才有效:
df1 = df.iloc[:,:2].set_index(df.columns[0])
df2 = df.iloc[:,2:].set_index(df.columns[2])
df_sync = pd.concat([df1,df2], axis=1)
输出:
>>> print(df_sync)
Data1 Data2
0 0 0
0.1 1 NaN
0.2 1 1
/ NaN /
整个代码:
import pandas as pd
from io import StringIO
txt = '''Time Data1 Time Data2
0 0 0 0
0.1 1 0.2 1
0.2 1 / /
'''
df = pd.read_csv(StringIO(txt), header=0, sep=r'\s+', skipinitialspace=True, engine='python', dtype='str')
df1 = df.iloc[:,:2].set_index(df.columns[0])
df2 = df.iloc[:,2:].set_index(df.columns[2])
df_sync = pd.concat([df1,df2], axis=1)
print(df_sync)
请注意,当我创建数据框时,我传递参数dtype='str'
以确保两个时间列都是类型str
推荐阅读
- c# - 本地化没有得到正确的声音
- mysql - MySQL崩溃,innodb试图访问表空间边界之外的页码
- javascript - 在另一个文件上完成注册后在另一个文件上显示模式
- python - 如何在 Pandas Python 中获得第二大值
- apache-flink - Apache flink - 限制公开的指标数量
- javascript - react native home/recentApp/back 按钮设置禁用
- rabbitmq - 死信队列消息头异常跟踪
- python - 即使指定超时范围足够大(50 秒),Cassandra 中的连接超时错误
- kubernetes - Kubernetes 持久化磁盘(Mongodb)在节点池升级时擦除
- f# - 如何优雅地合并两个带有指定键的元组序列?