是否有一种方法可以使用数据帧名称的字典值将csv文件导入Pandas?

2024-06-09 19:04:53 发布

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

我刚开始使用python,目前正在尝试将多个csv文件作为数据帧导入。虽然有一些类似的问题,但它们似乎对我的问题没有帮助。 csv文件具有相同的结构,并且名称不是我希望它们作为数据帧导入时的样子。字典列表包含数据帧的名称(它们应该是什么样的)以及csv文件的名称。 由于我需要在不同的文件夹中多次执行此操作,因此我尝试创建一个公式:

def import_csv(CSVdict):
    for index in range(len(CSVdict)):
       CSVdict[index]["New_ID"]=pd.read_csv(("C:/path/"+str(CSVdict[index]["csvDatei"])+".csv"),sep=';',decimal=',')

我不知道我的错在哪里,你能帮我吗? 字典列表如下所示:

[{'Nr': 0905', 'New_ID': '0905a', 'csvDatei': 'LG__380'}, {'Nr': '0905', 'New_ID': '0905b', 'csvDatei': 'LG__376'}, {'Nr': '0955', 'New_ID': '0955a', 'csvDatei': 'LG__53'}, {'Nr': '0955', 'New_ID': '0955b', 'csvDatei': 'LG__50'}]

稍后我需要pd.concat()在Nr中具有相同值的数据帧。因此具有New_ID =0955aNeW_ID=0955b等的数据帧需要在一个中。在此之前,必须对其进行调整。因此,我无法读取文件并直接使用pd.concat()


Tags: 文件csv数据名称id列表newindex
1条回答
网友
1楼 · 发布于 2024-06-09 19:04:53

您可以使用文件名作为密钥,例如:

CSV_dict = [
    {'Nr': '0905', 'New_ID': '0905a', 'csvDatei': 'LG__380'}, 
    {'Nr': '0905', 'New_ID': '0905b', 'csvDatei': 'LG__376'}, 
    {'Nr': '0955', 'New_ID': '0955a', 'csvDatei': 'LG__53'}, 
    {'Nr': '0955', 'New_ID': '0955b', 'csvDatei': 'LG__50'},
]

dataframes = {}
for d in csv_dict:
    path = "C:/path/{}.csv".format(d["csvDatei"])
    dataframes[d["New_ID"]] = pd.read_csv(path, sep=";", decimal=",")

如果需要标记每个数据帧,可以将以下行添加到for循环中:

dataframes[path]["ID_col"] = d["New_ID"]

其中d["New_ID"]是应用于每个数据帧的ID

相关问题 更多 >