我有一个包含数据框列表的字典,每个数据框都有一个日期时间格式的列(列名为“日期时间格式”)。我试图将每个数据帧的索引设置为该列,并且遇到了困难。
我已经简化了问题并试图找到解决方案,我的技术并没有坚持:
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')
它正常工作。
请告知如何通过列表(或本案例中的词典)使其正常运行。
谢谢!
答案 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,而不创建新版本。