我有一个从文件读取的Python数据框
下一步是将数据集分为2个数据集df_LastYear和df_ThisYear
注意:索引不会连续丢失2和6
ID AdmissionAge
0 14 68
1 22 86
3 78 40
4 124 45
5 128 35
7 148 92
8 183 71
9 185 98
10 219 79
应用了一些预测模型后,我得到了预测值y_ThisYear
的结果 Prediction
0 2.400000e+01
1 1.400000e+01
2 1.000000e+00
3 2.096032e+09
4 2.000000e+00
5 -7.395179e+11
6 6.159412e+06
7 5.592327e+07
8 5.303477e+08
9 5.500000e+00
10 6.500000e+00
我正在尝试将df_ThisYear和y_ThisYear这两个数据集合并为一个数据集
但是我总是得到这些结果
ID AdmissionAge Prediction
0 14.0 68.0 2.400000e+01
1 22.0 86.0 1.400000e+01
2 NaN NaN 1.000000e+00
3 78.0 40.0 2.096032e+09
4 124.0 45.0 2.000000e+00
5 128.0 35.0 -7.395179e+11
6 NaN NaN 6.159412e+06
7 148.0 92.0 5.592327e+07
8 183.0 71.0 5.303477e+08
9 185.0 98.0 5.500000e+00
10 219.0 79.0 6.500000e+00
有些NaN以前不存在
我发现这些NaN属于df_ThisYear
中未包含的索引因此,我尝试重置索引,以便获得连续的索引
我用过
df_ThisYear.reset_index(drop = True)
但仍获得相同的索引
如何解决此问题,以便我可以将df_ThisYear与y_ThisYear正确连接?
答案 0 :(得分:2)
那么您只需要col100
join
答案 1 :(得分:1)
如果您对使用concat
感到非常兴奋,则可以为how参数提供'inner':
pd.concat([df_ThisYear, y_ThisYear], axis=1, join='inner')
这将返回
Out[6]:
ID AdmissionAge Prediction
0 14 68 2.400000e+01
1 22 86 1.400000e+01
3 78 40 2.096032e+09
4 124 45 2.000000e+00
5 128 35 -7.395179e+11
7 148 92 5.592327e+07
8 183 71 5.303477e+08
9 185 98 5.500000e+00
10 219 79 6.500000e+00
答案 2 :(得分:0)
因为y_ThisYear与df_ThisYear具有不同的索引
当我同时使用
df_ThisYear.join(y_ThisYear )
它开始匹配每个数字及其匹配索引
如果索引实际上代表相同的记录,即df_ThisYear值中的索引7也与y_ThisYear索引7匹配,我知道这是正确的
就我而言,我只想将y_ThisYear中的第一条记录与df_ThisYear中的第一条记录匹配,而不管它们的索引号是什么
我找到了执行此操作的代码。
df_ThisYear = pd.concat([df_ThisYear.reset_index(drop=True), pd.DataFrame(y_ThisYear)], axis=1)
感谢大家对答案的帮助