【问题标题】:Pandas: add new row to Multi index table does not workPandas:向多索引表添加新行不起作用
【发布时间】:2015-06-01 00:32:25
【问题描述】:

我有一个奇怪的问题:我试图在我的表中添加一个具有多重索引的新行。但是,即使我完全按照此处解决的方法进行操作:adding a row to a MultiIndex DataFrame/Series。他们的示例和解决方案有效,但不适用于我的数据。要么我做错了,要么有错误

import pandas as pd
import datetime as dt

他们的代码(工作):

df = pd.DataFrame({'Time': [dt.datetime(2013,2,3,9,0,1), dt.datetime(2013,2,3,9,0,1)], 
                   'hsec': [1,25], 'vals': [45,46]})
df.set_index(['Time','hsec'],inplace=True)

print df
df.ix[(dt.datetime(2013,2,3,9,0,2),0),:] = 5
print df

输出:

                          vals
Time                hsec      
2013-02-03 09:00:01 1       45
                    25      46

                          vals
Time                hsec      
2013-02-03 09:00:01 1       45
                    25      46
2013-02-03 09:00:02 0        5

我的代码(不工作):

d = [[0, 0, 2], [0, 2, 2], [1, 0, 2], [1, 2, 2]]
df = pd.DataFrame(d, columns=('frames', 'classID', 'amount'))
df.set_index(['frames', 'classID'], inplace=True)
print df

df.ix[(1,1),:] = 5
print df

输出:

                amount
frames classID        
0      0             2
       2             2
1      0             2
       2             2

                amount
frames classID        
0      0             2
       2             5
1      0             2
       2             2

注意5 出现在df.loc[(0,2)]

【问题讨论】:

    标签: python pandas multi-index


    【解决方案1】:

    对我来说,这似乎是 pandas 中的一个错误,但它显然已在新发布的 0.16 中修复:

    In [9]: pd.__version__
    Out[9]: '0.16.0'
    
    In [10]: df.ix[(1,1),:] = 5
    
    In [11]: df
    Out[11]:
                    amount
    frames classID
    0      0             2
           2             2
    1      0             2
           2             2
           1             5
    

    但我可以确认这确实不适用于 pandas 0.15.2。如果可以升级到 pandas 0.16,我还建议在这种情况下明确使用loc(所以它肯定不会退回到位置整数位置)。但请注意,该错误也在 pandas 0.16 下方的 loc

    【讨论】:

    • 我确认该错误已在您使用pip install pandas 获得的版本中得到修复,即 pandas 0.16.0
    猜你喜欢
    • 1970-01-01
    • 2018-06-10
    • 2018-08-24
    • 2020-03-12
    • 2021-10-15
    • 2017-03-02
    • 2018-12-06
    • 2013-04-11
    • 2013-12-03
    相关资源
    最近更新 更多