【发布时间】:2021-11-21 00:30:11
【问题描述】:
我正在尝试读取包含合并单元格的 Excel 文件并从中创建字典列表。 DataFrame 看起来像:
Name Group Type Values
0 AC01 A01 Individual Value 1
1 NaN NaN NaN Value 2
2 NaN NaN NaN Value 3
3 NaN NaN NaN Value 4
4 NaN NaN NaN Value 5
5 AC02 A02 Individual Value 6
6 NaN NaN NaN Value 7
7 NaN NaN NaN Value 8
8 NaN NaN NaN Value 9
9 NaN NaN NaN Value 10
10 AC03 A03 Individual Value 11
11 NaN NaN NaN Value 12
12 NaN NaN NaN Value 13
13 NaN NaN NaN Value 14
14 NaN NaN NaN Value 15
为了创建一个字典列表,我正在做:
import pandas as pd
data = pd.read_excel(io="merged_cells.xlsx", usecols="A:D")
df = (
pd.DataFrame(data)
.rename(
columns={
data.columns[0]: "name",
data.columns[1]: "grp",
data.columns[2]: "type",
data.columns[3]: "values",
}
)
.to_dict(orient="records")
)
结果:
[{'grp': 'A01', 'name': 'AC01', 'type': 'Individual', 'values': 'Value 1'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 2'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 3'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 4'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 5'},
{'grp': 'A02', 'name': 'AC02', 'type': 'Individual', 'values': 'Value 6'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 7'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 8'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 9'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 10'},
{'grp': 'A03', 'name': 'AC03', 'type': 'Individual', 'values': 'Value 11'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 12'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 13'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 14'},
{'grp': nan, 'name': nan, 'type': nan, 'values': 'Value 15'}]
我想要实现的是每个字典中要转换为列表的最后一列如下:
[
{
"grp": "A01",
"name": "AC01",
"type": "Individual",
"values": ["Value 1", "Value 2", "Value 3", "Value 4", "Value 5"]
}
{
"grp": "A02",
"name": "AC02",
"type": "Individual",
"values": ["Value 6", "Value 7", "Value 8", "Value 9", "Value 10"]
}
{
"grp": "A03",
"name": "AC03",
"type": "Individual",
"values": ["Value 11", "Value 12", "Value 13", "Value 14", "Value 15"]
}
]
【问题讨论】:
标签: python excel pandas dataframe