gpt4 book ai didi

python - 如何将给定的 Excel 文件转换为 Python 中的字典?

转载 作者:行者123 更新时间:2023-12-03 20:41:20 25 4
gpt4 key购买 nike

Excel数据格式:
enter image description here
该文件翻译为 csv,内容如下:

{'Details': {0: 'Mickey',
1: nan,
2: nan,
3: nan,
4: 'Doland',
5: nan,
6: nan,
7: nan},
'Unnamed: 1': {0: 'Mouse',
1: nan,
2: nan,
3: nan,
4: nan,
5: nan,
6: nan,
7: nan},
'Unnamed: 2': {0: 'Address1',
1: 'city',
2: 'street',
3: 'hno',
4: 'adress1',
5: 'city',
6: 'street',
7: 'hno'},
'Unnamed: 3': {0: nan, 1: 'xxx', 2: 2, 3: 22, 4: nan, 5: 'zzz', 6: 3, 7: 33},
'Unnamed: 4': {0: 'address2',
1: 'city',
2: 'street',
3: 'hno',
4: 'address2',
5: 'city',
6: 'street',
7: 'hno'},
'Unnamed: 5': {0: nan, 1: 'yyy', 2: 3, 3: 33, 4: nan, 5: 'www', 6: 4, 7: 44}}
如何将附加的 Excel 转换为 Python 中的字典?
预期的字典:
dict1 ={'Details':[['Mickey','Mouse',{'Address1': {'city': 'xxx', 'Street': '2', 'hno': '22'}},
{'Address2': {'city': 'yyy', 'Street': '3', 'hno': '33'}}],
['Doland','Duck',{'Address1': {'city': 'xxx', 'Street': '2', 'hno': '22'}},
{'Address2': {'city': 'yyy', 'Street': '3', 'hno': '33'}}]]}

最佳答案

这是我能想到的最糟糕的解决方案:

df = pd.read_excel('samp.xlsx', header=[0], 
index_col=[0,1])
d = {'details': []}
for i, grp in df.groupby('Details'):
grp = (grp.T.ffill().T)
grp.columns = grp.iloc[0]
grp = grp[1:].T
name = ', '.join(grp.index.name)
val = grp.groupby(grp.index).apply(lambda x: dict(zip(x.iloc[0], x.iloc[1]))).to_dict()
final_val = ([name,val])
d['details'].append(final_val)

d:
{'details': [['Donald, Duck',
{'Address1': {'City': 'zzz', 'Street': 3, 'hno': 33},
'Address2': {'City': 'www', 'Street': 4, 'hno': 44}}],
['Mickey, Mouse',
{'Address1': {'City': 'xxx', 'Street': 2, 'hno': 22},
'Address2': {'City': 'yyy', 'Street': 3, 'hno': 33}}]]}
我已经在评论部分发布了excel文件的链接。
基本上,我为每个按名称访问每个组(米老鼠和唐老鸭)使用 z 循环,然后我对其应用操作。
对不起,我很着急,稍后会添加解释。如果您在理解事物方面有困难,请告诉我。
这个月牙:
grp.T.ffill().T 
将帮助我用 Address1/Address2 填充 nan 值。这就是为什么我转置它然后使用 ffill .
enter image description here
之后,我想将每个组的起始行作为列。
一旦这一步完成。我的第一行将是关键,第二行将是我的值(value)。所以我将它们压缩在一起并创建了一本字典。希望这可以帮助您更好地理解逻辑。

关于python - 如何将给定的 Excel 文件转换为 Python 中的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66962158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com