在CSV中找到字典的键匹配,并将值写入下一列

2024-06-16 10:06:30 发布

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

使用Python2.7。在

我每天早上运行一个函数来创建一个带有键和值的输出字典。输出字典结果如下所示:

“约翰”:1
“杰克”:5
“露西”:235
“莎拉”:33岁

然后打开一个现有的csv文件,该文件的列/行如下所示:

名称1/1/17 1/2/17
约翰5 88
杰克31 34
莎拉45 12
露西77 57

其中,列A标题始终是名称,每个连续的列标题是列中数据的日期。在

我正在尝试编写一个函数,该函数将:

打开csv, 写入csv 将日期追加到下一个可用的列标题(即第1行) 然后 在csv中查找与我的字典中的键匹配的键 将字典中的值附加到csv中的下一个打开列

使用上面的例子,然后
名称1/1/17 1/2/17
约翰5 88
杰克31 34
莎拉45 12
露西77 57

变成

名称1/1/17 1/2/17 1/3/17
约翰5 88 1
杰克31 34 5
莎拉45 12 33
露西77 57 235

我已经非常接近我要用以下代码来做的事情:

import pandas as pd
import datetime


starter_df = pd.read_csv('keyword_results.csv', names = ['Keyword'])

#dictionary created by function
test_dic = {"John": 12, "Jake": 45, "Sarah": 31, "Lucy": 18}

now = datetime.datetime.now()

str_date = now.strftime("%m %d %Y")

starter_df[str_date] = starter_df["Keyword"].map(test_dic)

starter_df.to_csv('keyword_results.csv')

我正在将csv读入一个dataframe,尝试将新列映射到dataframe,然后将dataframe输出到csv。在

问题是这是将日期写入新列,但它下面没有数据。在

我不知所措,谢谢你的帮助。我对Python还是个新手。在


Tags: 文件csv数据函数import名称标题dataframe
1条回答
网友
1楼 · 发布于 2024-06-16 10:06:30

你可以用lambda来做,这很简单,也很快。在读取csv时也不需要添加参数“names=['Keyword']”。在

import pandas as pd
import datetime
import os 
os.chdir('D:/mypc/')

starter_df = pd.read_csv('keyword_results.csv')

#dictionary created by function
test_dic = {"John": 12, "Jake": 45, "Sarah": 31, "Lucy": 18}

now = datetime.datetime.now()
str_date = now.strftime("%m/%d/%Y")

starter_df[str_date] = starter_df["Name"].map(lambda x : test_dic[x])

starter_df.to_csv('keyword_results.csv')

相关问题 更多 >