python-3.x - 将多索引数据帧与 Int64Index 数据帧组合
问题描述
我有一个带有多索引的数据框
结果 =
MultiIndex([(1, 'HK_MN001'),
(2, 'HK_MN001'),
(3, 'HK_MN002'),
(4, 'HK_MN003'),
(5, 'HK_MN004'),
(6, 'HK_MN005'),
(7, 'HK_MN005'),
(8, 'HK_MN005')],
names=['ID1', 'ID2'])
另一个带有索引的数据框:
照片_df:
Int64Index([1, 2, 3, 4, 5, 6, 7, 8], dtype='int64', name='ID1')
我想连接两个数据帧,但它给了我错误:代码:
result = pd.concat([result,photo_df], axis = 1,sort=False)
error:
"Can only union MultiIndex with MultiIndex or Index of tuples, "
NotImplementedError: Can only union MultiIndex with MultiIndex or Index of tuples, try mi.to_flat_index().union(other) instead.
结果数据框是:
photo_df 数据框是:
PhotoID raw_photo
0 1 HK_MN001_DSC_2160_161014Ushio.JPG
1 2 HK_MN001_DSC_2308_161014Ushio.JPG
2 3 HK_MN002_DSC_2327_161014Ushio.JPG
3 4 HK_MN003_DSC_1474_181015Ushio.jpg
4 5 HK_MN004_DSC_1491_181015Ushio.jpg
5 6 HK_MN005_DSC_1506_181015Ushio.JPG
6 7 HK_MN005_DSC_1527_181015Ushio.JPG
7 8 HK_MN005_DSC_1528_181015Ushio.jpg
解决方案
我认为您需要同时DataFrames
创建MultiIndex
:
photo_df = photo_df.set_index('PhotoID', drop=False)
photo_df.columns = pd.MultiIndex.from_product([photo_df.columns, ['']])
print (photo_df)
PhotoID raw_photo
PhotoID
1 1 HK_MN001_DSC_2160_161014Ushio.JPG
2 2 HK_MN001_DSC_2308_161014Ushio.JPG
3 3 HK_MN002_DSC_2327_161014Ushio.JPG
4 4 HK_MN003_DSC_1474_181015Ushio.jpg
5 5 HK_MN004_DSC_1491_181015Ushio.jpg
6 6 HK_MN005_DSC_1506_181015Ushio.JPG
7 7 HK_MN005_DSC_1527_181015Ushio.JPG
8 8 HK_MN005_DSC_1528_181015Ushio.jpg
#second level ID2 is column
result = pd.concat([result.reset_index(level=1),photo_df], axis = 1,sort=False)
推荐阅读
- javascript - JQuery Datepicker 在初始化时打开并设置今天的日期
- .net - 为什么在使用 DI 时在我的新 .NET Core 2.0 WebApi 端点上获得 500?
- java - Jacoco 显示错误的覆盖率检查结果
- javascript - 如何在不执行 [0] 的情况下循环遍历数组键
- android - 在 onEngineInitializationCompleted 下给出 MISSING_LIBRARIES 的地图初始化(错误错误)
- c# - 如何确定是否为变量分配了枚举中存在的值?
- kubernetes - 使用“应用”时“已创建”与“未更改”与“已配置”
- javascript - 如果您尝试编辑,光标会跳到字段末尾
- ios - 关于应用内评级 iOS 的说明
- machine-learning - 当下一个状态无法达到时,如何应用强化学习?