如何在具有多个数据帧的字典中添加变量?

2024-10-03 06:22:23 发布

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

我有一个字典,其中有几个数据帧,如下所示:

dataframes = {'Df_20100101': DataFrame, 'Df_20100102': DataFrame, 'Df_20100103': DataFrame}

每个数据帧的键名由Df_u组成,后跟日期2010[年]、01[月]和01[日]

对于每个数据帧,我想添加一个新的变量/列,其中的日期[当然是日期格式]对应于它的键

我是一个新的学习使用字典的人,所以如果你能帮助我,我将非常感激

我尝试了下面的代码,但它是我想要的非常基本的

for key, val in  dataframes.items():
 val['Key']==k

提前谢谢


Tags: 数据key代码indataframedffor字典
2条回答

将词典理解与^{}结合使用:

dataframes = {key:val.assign(Key = pd.to_datetime(key.split('_')[1]))
                          for key, val in dataframes.items()}

您的代码应该由key更改为selectDataFrame

for key, val in  dataframes.items():
    dataframes[key]['Key'] = pd.to_datetime(key.split('_')[1])

你有一个正确的开始

for key, val in dataframes.items():
    *_, date = key.split("_")
    val["Date"] = pd.date_range(start=date, end=date, periods=len(val))

如果要更改日期格式,可以这样做

for key, val in dataframes.items():
    *_, date = key.split("_")
    val["Date"] = pd.date_range(start=date, end=date, periods=len(val)).strftime('%m/%d/%Y') #<==== here 

以及documentation about date format

编辑:

前面提到的awnser过于复杂,因为当您在新的列赋值中传递单个值时,pandas将自动填充整个列

见@jezrael awser

要使用@jezrael awser更改日期格式,只需添加format='%m/%d/%Y'

for key, val in  dataframes.items():
    dataframes[key]['Key'] = pd.to_datetime(key.split('_')[1], format='%m/%d/%Y')

相关问题 更多 >