excel文件中的python字典列表

izkcnapc  于 2022-12-24  发布在  Python
关注(0)|答案(2)|浏览(123)

嘿,伙计们,我在做一个字典文件,里面有一个表名和列名,表名重复很多次,表示excel文件里有多少个列名。

| table_name| column_name|
 | ----------|------------|
 | players   |  name      |
 | players   |  height    |
 | players   |  age       |
 | teams     | name       |
 | teams     | city       |
 | teams     | owner      |

它一直往下,我这里有大约1000行,所以我可以把它们输入到我想要的格式中,但是我觉得这会花很多时间,这是我想要的字典列表的格式。
第一个月

mspsb9vt

mspsb9vt1#

一个选项是读取带有Pandas的excel文件。
您可以使用pandas.DataFrame.groupby(),然后使用apply获得groupby的结果list,最后使用pandas.Series.to_dict()

import pandas as pd
file_path = "Book1.xlsx"
df = pd.read_excel(file_path)
# >>> df
#   table_name column_name
# 0    players        name
# 1    players      height
# 2    players         age
# 3      teams        name
# 4      teams        city
# 5      teams       owner

dct = df.groupby('table_name')['column_name'].apply(list).to_dict()

# dct -> {'players': ['name', 'height', 'age'], 'teams': ['name', 'city', 'owner']}

# For converting the above 'dict', you can use the below 'list comprehension':
lst_dct = [{k:v} for k,v in dct.items()]

print(lst_dct)

输出:

[{'players': ['name', 'height', 'age']}, {'teams': ['name', 'city', 'owner']}]
zzwlnbp8

zzwlnbp82#

啊谢谢我'mahdi,我实际上没有看到你的答案,我的答案实际上是非常接近你的,只是张贴它只是以防万一有一个字典的所有表减去列表的需要.但刚才看到你也包括了,以及:).很高兴我们在这里得出了相同的结论,Pandas是一个很好的图书馆使用.

import pandas

def excel_to_dict():
   csvFile = pandas.read_csv('qv_columns.csv')
   tables_grouped = csvFile.groupby('TABLE_NAME'). 
   ['COLUMN_NAME'].agg(list)
   tables_dict = tables_grouped.to_dict()
   print(tables_dict)

相关问题