Python:将数据写入特定单元格
我需要一些数据,我需要将其写入一列,但写入不同的字符串Python:将数据写入特定单元格,python,csv,Python,Csv,我需要一些数据,我需要将其写入一列,但写入不同的字符串 df = pd.DataFrame() list1 = ['111', '333', '555', '777', '8888'] list2 = [1, 5, 56, 44, 2] with open('hh1.csv', 'a') as f: writer = csv.writer(f) for (elem1, elem2) in zip(list1, list2): writer.writerow([el
df = pd.DataFrame()
list1 = ['111', '333', '555', '777', '8888']
list2 = [1, 5, 56, 44, 2]
with open('hh1.csv', 'a') as f:
writer = csv.writer(f)
for (elem1, elem2) in zip(list1, list2):
writer.writerow([elem1])
我想把elem1
写入带有数字elem2
的单元格,我是说
A1中的111
,A5中的333
等。
我该怎么做呢?所以根据list2
max index用空值初始化列表。然后,使用zip
按照list1、list2
索引/值元组填充它,就像您在尝试中所做的那样
list1 = ['111', '333', '555', '777', '8888']
list2 = [1, 5, 56, 44, 2]
rows_to_write = [[""] for _ in range(max(list2))]
for i,v in zip(list2,list1):
rows_to_write[i-1][0] = v
此时,要写入的行
值得:
[['111'], ['8888'], [''], [''], ['333'], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], ['777'], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], ['555']]
然后在1条指令中写入行(不追加)
这将创建一个单行“稀疏”csv文件。(open('hh1.csv','wb')作为f
用于python 2)您想在行间写入什么?@Jean-Françoisfare它将是空的,但我需要在循环中写入,数字可能不按顺序写入111
到单元格111325
甚至不可能。这些值不在list2
范围内。。。哦,你必须使用w
模式,而不是a
!!从零开始重写文件。你能说吗,但是如果我没有一个带数字的列表,但是把它放在循环中,我可以这样写吗?我试着这样做,但它不写,这可能是换行符的问题。在.csv文件的open
上检查我的编辑
with open('hh1.csv', 'w',newline='') as f: # python 3
csv.writer(f).writerows(rows_to_write)