如何用Python Pandas删除加密货币CSV文件中单方独有的时间行
解决加密货币CSV数据时间对齐并计算价格差值的方案
步骤1:读取并预处理数据
先把两个CSV文件读入Pandas DataFrame,同时将时间列转换为datetime类型并设为索引,这样后续能基于时间精准匹配:
import pandas as pd # 读取文件,自动解析时间列并设为索引 df_a = pd.read_csv('file_a.csv', parse_dates=['timestamp'], index_col='timestamp') df_b = pd.read_csv('file_b.csv', parse_dates=['timestamp'], index_col='timestamp') # 若时间列格式特殊,可手动指定格式(示例) # df_a = pd.read_csv('file_a.csv', parse_dates=['timestamp'], index_col='timestamp', date_format='%Y.%m.%d %H:%M')
步骤2:内连接保留共同时间点
使用内连接(inner join)方式合并两个DataFrame,这样只会保留双方都存在的时间行,自动剔除单边存在的时间点:
# 内连接合并,lsuffix/rsuffix处理同名列冲突 merged_df = df_a.join(df_b, how='inner', lsuffix='_a', rsuffix='_b')
步骤3:计算价格差值
基于合并后的DataFrame,直接新增列计算两个加密货币的价格差值:
# 计算A与B的价格差(根据需求调整顺序) merged_df['price_diff'] = merged_df['price_a'] - merged_df['price_b']
可选:保存结果
将处理好的对齐数据和差值保存到新CSV文件:
merged_df.to_csv('aligned_price_diff.csv')
额外注意事项
- 如果数据存在重复时间戳,先执行去重操作避免匹配错误:
df_a = df_a[~df_a.index.duplicated()] df_b = df_b[~df_b.index.duplicated()] - 确保两个文件的时间列名称一致(示例中用的是
timestamp,如果你的列名是datetime或其他,对应修改即可)
内容的提问来源于stack exchange,提问作者Keejays
相关产品推荐
相关产品推荐

