python - 将列表的每个元素写入元组中作为 csv 的单独列
问题描述
我有一个数据结构,我只想在1 行中写入 csv fie 。这是在运行下一次迭代时,它为我正在创建的 csv 的每个标题字段添加一个新行。
例如,我试图写入 csv 的行看起来像这样。在这里,我希望列表的每个元素都放在单独的列中。意思是,4.1% 应该到第 2 列,11.5% 到第 3 列,依此类推。
rowdict = {tuple:4}
('Row 1 data', ['4.1%', '11.5%', '21.1%', '2.6%', '14.8%', '0.4%', '9.6%', '35.6%', '0.0%', '0.4%'], [11, 31, 57, 7, 40, 1, 26, 96, 0, 1], 270)
我的片段:
f = open(completeName + '.csv', 'a', newline='', encoding='utf-8')
with f:
# identifying header
header = header_list
writer = csv.DictWriter(f, fieldnames=header)
# writing data row-wise into the csv file
writer.writeheader()
all_perce_val = ["{:.1%}".format(x) for x in all_fractions_list]
for i in range(1,len(all_perce_val)):
writer.writerow((str(os.path.split(os.path.split(directory)[0])[1]), all_perce_val, count_of_each_type, total_cycle_count))
print("Finished writing the csv file at:"+completeName)
我正在努力弄清楚如何将我必须的多个列表传递给 writerow() 以便它以我需要的方式编写它们。
更新:我改变了我的方法并尝试使用数据框
data_row = []
data_row.extend([str(os.path.split(os.path.split(directory)[0])[1])])
data_row.extend(all_perce_val)
data_row.extend(count_of_each_type)
data_row.extend([total_cycle_count])
final_data_row = [data_row]
df_row = pd.DataFrame(data=final_data_row, columns=header).fillna('')
mode = 'w' if header_flag else 'a'
df_row.to_csv(completeName + '.csv', mode=mode, index=None)
header_flag = False
但是,我想避免在每次循环迭代中写入列名。上面的片段正在挣扎。
解决方案
您应该在使用它之前解压缩列表writer.writerow
。
>>> row=('Row 1 data', ['4.1%', '11.5%', '21.1%', '2.6%', '14.8%', '0.4%', '9.6%', '35.6%', '0.0%', '0.4%'], [11, 31, 57, 7, 40, 1, 26, 96, 0, 1], 270)
>>> row=(row[0],*row[1],*row[2],row[3])
>>> row
('Row 1 data', '4.1%', '11.5%', '21.1%', '2.6%', '14.8%', '0.4%', '9.6%', '35.6%', '0.0%', '0.4%', 11, 31, 57, 7, 40, 1, 26, 96, 0, 1, 270)
现在你可以使用了writer.writerow(row)
推荐阅读
- google-cloud-platform - 设置 Google Query 时的最佳安全做法是什么?
- reactjs - 在 React 美丽的 dnd 中渲染一个组件
- ruby-on-rails - 如何解决 nginx 找不到 puma?
- javascript - 处理多个对象
- javascript - 写这个的正确方法是什么?需要替换一个switch语句
- angular - 子项角度路由中的不同 RoleGuard
- java - 在 Linux 中使用 7zip 将 ISO 提取到位置
- html - 阻止表格单元格重叠 HTML CSS
- r - 在 DataFrame 中插入向量
- jquery - 带有锁定列的 Kendo Grid 偏移未锁定的列对齐垂直和水平