向中的多个数据帧添加datetime列

2024-10-04 05:31:19 发布

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

我正在尝试循环遍历数据帧列表,并为每个数据帧添加一个datetime列。我试过以下方法但没有效果:

dfs = ['nov22_2017', 'nov29_2017', 'dec06_2017','dec13_2017', 
       'dec20_2017', 'dec27_2017', 'jan03_2018', 'jan10_2018']
sheets = ['11.22.17', '11.29.17', '12.6.17', '12.13',
          '12.20', '12.27', '1.3.18', '1.10.18']
dates = ['2017-11-22', '2017-11-29', '2017-1-06', '2017-12-13',
         '2017-12-20', '2017-12-27', '2018-01-03', '2018-01-10']

# create a list of datetimes
datetimes = [pd.to_datetime(date) for date in dates]

# assign each df to a variable
dfs = [nrc_xl.parse(sheet, usecols = 10) for sheet in sheets]

# assign datetime columns
for index, df in enumerate(dfs):
    df['date'] = datetimes[index]

for循环不会修改列表中的数据帧。如何以编程方式完成此任务,而不必为每个数据帧创建和分配列?你知道吗

编辑:我修好了。你知道吗

sheets = ['11.22.17', '11.29.17', '12.6.17', '12.13',
          '12.20', '12.27', '1.3.18', '1.10.18']

# assign dfs to variables
[nov22_2017, nov29_2017, dec06_2017, dec13_2017,
 dec20_2017, dec27_2017, jan03_2018, jan10_2018] = [nrc_xl.parse(sheet, usecols = 10) for sheet in sheets]

dfs = [nov22_2017, nov29_2017, dec06_2017, dec13_2017,
       dec20_2017, dec27_2017, jan03_2018, jan10_2018]

# create a list of datetimes
dates = ['2017-11-22', '2017-11-29', '2017-1-06', '2017-12-13',
         '2017-12-20', '2017-12-27', '2018-01-03', '2018-01-10']

datetimes = [pd.to_datetime(date) for date in dates]

# assign datetime columns
for index, df in enumerate(dfs):
    df['date'] = datetimes[index]

Tags: to数据indffordatetimedateindex