更改dict中所有数据帧的所有索引

时间:2018-05-14 18:21:37

标签: python pandas dataframe indexing

我有一个包含数据框列表的字典,每个数据框都有一个日期时间格式的列(列名为“日期时间格式”)。我试图将每个数据帧的索引设置为该列,并且遇到了困难。

我已经简化了问题并试图找到解决方案,我的技术并没有坚持:

def test_func(dataframe):
    dataframe = dataframe.set_index('Datetime Format')
    return dataframe

test_dict = {'DF_1': df1, 'DF_2': df2}

for k, v in test_dict.items():
    v = test_func(v)

在查看生成的test_dict或每个单独的数据框(df1和df2)时,我没有成功将索引设置为“日期时间格式”列。

我知道我什么时候:

df1 = df1.set_index('Datetime Format')

它正常工作。

请告知如何通过列表(或本案例中的词典)使其正常运行。

谢谢!

1 个答案:

答案 0 :(得分:0)

set_index函数默认返回一个新的DataFrame,这就是为什么您的更改不会停留。

有两种解决方法:您可以使用函数返回的DataFrame重新分配dict值。

for k, v in test_dict.items():
    test_dict[k] = test_func(v)

或者您可以在调用inplace时传递set_index参数。

def test_func(dataframe):
    dataframe = dataframe.set_index('Datetime Format', inplace=True)

这将修改原始DataFrame,而不创建新版本。