我有一个包含名称和数字的csv文件。我希望该名称乘以值并存储在字典中。如果没有值,则应跳过名称。
Nicole 15,
Heike 20,
Markus 32,
Carmen 23,
Holger ,
Carolin ,
Marcin 16,
Vero 12,
Sabine 16,
Peter 32,
Nicole ,
Markus S 15,
例如看起来像这样
´´´people = {"sachbearbeiter" : ["Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Nicole", "Heike", "Heike", "Heike", "Heike", "Heike", "Heike", and so on]}´´´
这样我就可以加载此系列并将其附加到我的数据框中。因为我有一份要交给我的员工的案件清单。
谢谢
答案 0 :(得分:0)
为什么不使用循环?
l=[("Nicole",3),("Bob",2)]
r=[]
for i in l:
for j in range(0,i[1]):
r.append(i[0])
print(r)
甚至是乘法
l=[("Nicole",3),("Bob",2),("Chloe",0)]
r=[]
for i in l:
if (i[1]!=0):
r=r+i[1]*[i[0]]
print(r)
答案 1 :(得分:0)
这应该适合您的示例。如果您有一个数字但没有值,或者没有值并且没有数字,则必须编写一些代码来处理它。 (假设csv称为sachbearbeiter.csv
)。
import csv
def csv2list(source_name):
with open(source_name, encoding='utf-8') as csvfile:
read_csv = csv.reader(csvfile, delimiter=',')
return list(read_csv)
people = {"sachbearbeiter": []}
for line in csv2list("sachbearbeiter.csv"):
t = line[0].rsplit(None, 1)
if t[-1].isdigit():
people["sachbearbeiter"].extend(int(t[1])*[t[0]])