You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并两个行数相同的CSV文件列并避免NaN值

解决两个行数相同CSV的无NaN合并问题

哦,我明白你的问题了——你用pd.concat的时候选错了轴参数,导致数据被上下堆叠而不是左右合并,这才出现了大量NaN。因为你的两个数据集行数完全一致,我们只需要把它们按列对齐合并,就能得到没有缺失值的结果。

错误原因分析

你之前用的pd.concat([delete, data1], axis=0)中,axis=0是按行方向拼接(把一个DataFrame放在另一个下面)。这样dates.csv的行没有Expected和Predicted列,就会填充NaN;mydata.csv的行没有日期列,同样填充NaN。而你需要的是把每一行的日期和对应的预测值、期望值放在同一行,也就是列方向拼接。

方法一:修改concat的轴参数

直接把axis改成1,就能实现左右合并,因为两个DataFrame行数相同,索引会自动对齐:

import pandas as pd

# 先正确读取CSV文件(注意变量名规范)
dates_df = pd.read_csv('dates.csv')
mydata_df = pd.read_csv('mydata.csv')

# 按列合并,ignore_index=False保留原有索引(可选,这里因为行数一致,不影响)
result = pd.concat([dates_df, mydata_df], axis=1)
print(result)

方法二:使用merge按索引合并

如果更明确要按行索引对齐,merge也是个好选择:

result = pd.merge(dates_df, mydata_df, left_index=True, right_index=True)

方法三:使用join方法(最简洁)

join默认就是按索引合并两个DataFrame,代码最简洁:

result = dates_df.join(mydata_df)

验证结果

以上三种方法都会得到类似这样的结果(示例):

日期ExpectedPredicted
2020-07-061299012797.578628473471
2020-07-07......

完全没有NaN值,每一行的日期和对应数据都正确对应。

小提醒:确保两个CSV的行数确实完全一致,如果有一行差异,还是会出现NaN哦,但你已经确认行数相同,所以没问题。

内容的提问来源于stack exchange,提问作者Revanth Tv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:36:49