在熊猫数据框中添加具有重复索引的行

时间:2015-01-15 16:20:18

标签: python pandas

假设您有一个数据框:

df = pd.DataFrame(columns = ['item'], index = ['datetime'])

您可以在特定日期索引上添加项目:

df.loc[pd.datetime(2015, 1, 15)] = 23

有什么办法可以在同一个索引上添加/追加新项目吗?

免责声明:据我所知,索引应该是独一无二的,而我所要求的并不是非常棒的。但是对于某些应用程序,特别是对于多个索引,它提供了一种选择数据块的简便方法。

编辑:同时我找到了append()功能,它似乎完全是这样,虽然它有点麻烦。 另请看here

3 个答案:

答案 0 :(得分:1)

你可以尝试:

df.groupby(df.index).sum()

这会将具有重复索引的行分组,然后将它们相加。

答案 1 :(得分:0)

我尝试了很多方法来做到这一点,最简单的错误最少的方法是创建一个与您已有的数据帧相同的数据帧,然后使用 pandas.concat([maindata, add_data]) 将“add_data”推入“主数据”。即使您有重复的索引,它仍然会将新行“add_data”添加到主数据框“maindata”。试试下面的代码。

import pandas as pd    
maindata = pd.DataFrame([[12, 13, 15], [200, 300, 400]], index=['serial1', 'serial2'], columns=['HP No', 'Company', 'Name'])
    add_data = pd.DataFrame([[5000, 6000, 7000]], index=['serial1'], columns=['HP No', 'Company', 'Name'])
    maindata = pd.concat([maindata, add_data])

希望能解决问题。 如果您想以专业的方式对重复索引进行排序,您可以尝试阅读sort_index(inplace=True)。 GL

答案 2 :(得分:-1)

与此同时,我发现了append()功能,它看起来确实如此,虽然它有点麻烦。也请看这里。