猿问

将列表的值设置为数据框的列表

场景:我有2个列表,一个是带有名称的字符串列表,另一个是具有不同内容的数据帧列表。我正在尝试将第一个列表中的值放入第二个列表中。


数据示例:


list1 = ['jan18', 'feb18', 'mar18', 'apr18', 'may18']

清单2是具有以下结构的数据帧的列表:


DF1_LIST2:

row1      row2      row3    row4

           5         55      12

           3         51      11

           3         52      11

           9         59      11


DF2_LIST2:

row1      row2      row3    row4

           9         91      7

           5         1       23

           3         24      56

           9         68      21

我的目标是将list1的第一个元素添加到list2的第一个数据帧的第一列中的所有单元格中;然后将list2的第二个元素添加到列表2的第二个数据帧的第一列的所有单元格中,依此类推。输出将是这样的:


DF1_LIST2:

row1      row2      row3    row4

jan18      5         55      12

jan18      3         51      11

jan18      3         52      11

jan18      9         59      11


DF2_LIST2:

row1      row2      row3    row4

feb18      9         91      7

feb18      5         1       23

feb18      3         24      56

feb18      9         68      21

到目前为止,我正在尝试建立一个三元组for循环,第一个遍历list1的项,第二个遍历list2的数据帧,第三个遍历每个数据帧的行:


import pandas as pd

import os

from os import listdir

from os.path import isfile, join

import glob


# Get File Names

mypath = "//DGMS/Desktop/uploaded"

onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]


# Get dates

onlyfiles = [name.split("_")[0] for name in onlyfiles]    

df_of_names = pd.DataFrame(onlyfiles) 


# Get File Contents

all_files = glob.glob(os.path.join(mypath, "*.xls*"))

contentdataframes = [pd.read_excel(f) for f in all_files]


for dfs in contentdataframes:

dfs.insert(0,"date*","")

dfs.insert(1,"apply*","")


for date in onlyfiles:  

     for dfs in contentdataframes:  

        for row in dfs.itertuples(index=True):

            dfs.set_value(row,0,date)

我相信这给我带来了一个错误,因为标题列仍然算作普通行,而不是索引。


问题:是否有适当的方法来做到这一点?


慕雪6442864
浏览 164回答 2
2回答
随时随地看视频慕课网APP

相关分类

Python
我要回答