如何用Python将两个列表转换为指定格式的DataFrame?
解决方法
你当前的代码存在两个问题:
- 变量名错误:
my_hostname并非你定义的列表,应使用my_foldername;my_fileType大小写不匹配,原列表变量名为my_filetype - 直接用
zip只能生成两列结构,无法得到你想要的宽表格式
以下是正确的实现步骤:
- 导入pandas库,按每个文件夹对应3个文件的规则拆分文件类型列表:
import pandas as pd my_foldername = ['folder1','folder2'] my_filetype = ['avi.txt','bmp.txt','exe.txt','avi.txt','bmp.txt','exe.txt'] # 每3个元素为一组拆分文件类型列表 file_groups = [my_filetype[i:i+3] for i in range(0, len(my_filetype), 3)]
- 构造DataFrame并调整结构,匹配目标格式:
# 创建DataFrame,指定索引为文件夹名、列名为AVI/BMP/EXE df = pd.DataFrame(file_groups, index=my_foldername, columns=['AVI', 'BMP', 'EXE']) # 将索引转为普通列,命名为FolderName df = df.reset_index().rename(columns={'index': 'FolderName'})
- 输出为目标markdown格式:
print(df.to_markdown(index=False))
执行后会得到如下输出:
| FolderName | AVI | BMP | EXE |
|---|---|---|---|
| folder1 | avi.txt | bmp.txt | exe.txt |
| folder2 | avi.txt | bmp.txt | exe.txt |
内容的提问来源于stack exchange,提问作者cjanraf
相关产品推荐
相关产品推荐

