【发布时间】:2022-07-13 21:12:10
【问题描述】:
我有以下excel:
type name latitude longitude
--------------------------------------------
area area1 50.33 4.23
building building1 - -
我正在使用 pandas 使用以下函数读取 excel 文件:
def read_excel(self,sheet_name):
df = pd.read_excel(io=self.excel_file, sheet_name=sheet_name)
dict = df.to_dict()
我得到以下输出:
{
'type': { 0: 'area', 1: 'building' },
'name': { 0: 'area1', 1: 'building1' },
'latitude': { 0: 50.33, 1: nan },
'longitude': { 0: 4.23, 1: nan }
}
我想要以下输出:
[
{
'type': 'area',
'name': 'area1',
'latitude': 50.33,
'longitude': 4.23
},
{
'type': 'building',
'name': 'building1',
'latitude': nan,
'longitude': nan
}
]
为此,我编写了以下函数:
def read_excel(self,sheet_name):
df = pd.read_excel(io=self.excel_file, sheet_name=sheet_name)
dict = df.to_dict()
objects = []
for i in range(0,len(df.index)):
temp = {}
temp['type'] = dict['type'][i]
temp['name'] = dict['name'][i]
temp['latitude'] = dict['latitude'][i]
temp['longitude'] = dict['longitude'][i]
objects.append(temp)
print(objects)
这会产生我想要的输出。但是,我想要一个更动态的解决方案,例如我不需要创建一个带有静态分配列名的临时字典。
有什么建议可以实现吗?
【问题讨论】: