用多索引合并pandas数据帧

2024-10-02 00:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了两个带有多级索引的pandas数据帧(日期是第一个维度,一天中的小时是第二个维度)。在

我想从dataframefirst添加一列到dataframesecond。如果我只是尝试:

second["new_col"] = first["new_col"]

我只得到second["new_col"]中每一行的NaN值,尽管这两个数据帧具有完全相同的索引。在

我还试着合并框架如下:

^{pr2}$

我做错什么了?在

编辑:

我自己找到了一个解决方案:似乎索引的数据类型不一样。我将每个帧的索引列类型化为str和{},这就解决了这个问题。在

如何预先检查索引级别的数据类型,以避免此类错误?在


Tags: 数据框架编辑pandasnewcolnan解决方案
1条回答
网友
1楼 · 发布于 2024-10-02 00:21:30

您可以尝试df.index.levels

import pandas as pd
import io

temp=u"""Date;Time;ID
8/14/2015;3:00;aaa123
8/7/2015;4:00;aaa123
7/15/2015;2:00;aaa123
8/22/2015;7:00;aaa123
8/3/2015;1:00;bbb222
8/8/2015;5:00;bbb222
8/10/2015;7:00;bbb222"""

df1 = pd.read_csv(io.StringIO(temp), parse_dates=[0],sep=";")

df1 = df1.sort_values(["Date", "Time"])
df1= df1.set_index(["Date", "Time"])

print df1
                     ID
Date       Time        
2015-07-15 2:00  aaa123
2015-08-03 1:00  bbb222
2015-08-07 4:00  aaa123
2015-08-08 5:00  bbb222
2015-08-10 7:00  bbb222
2015-08-14 3:00  aaa123
2015-08-22 7:00  aaa123
^{pr2}$

相关问题 更多 >

    热门问题