我有一个包含 2 列的数据框 get_tables
get_tables= df[['Database Schema', 'Database Table']]
get_tables = get_tables.drop_duplicates(subset=None, keep='first', inplace=False)
print(get_tables)
dict_get_tables= dict(zip(get_tables['Database Schema'], get_tables['Database Table']))
print(dict_get_tables)
get_tables 将输出打印为
Database Schema Database Table
0 abc customer
3 abc cust
4 def Student
dict_get_tables 将输出打印为
{'abc': 'cust', 'def': 'Student'}
我的要求是,当我在 dict_get_tables 上做一个 get 时dict_get_tables.get('abc')
,我必须让 customer 和 custdict_get_tables.get('def')
都给我Student
如果想加入的字符串通过分离器使用groupby
与apply
和join
:
out1 = get_tables.groupby('Database Schema')['Database Table'].apply(', '.join).to_dict()
print (out1)
{'abc': 'customer, cust', 'def': 'Student'}
print (out1['abc'])
customer, cust
print (out1['def'])
Student
如果需要列出使用groupby
和list
:
out2 = get_tables.groupby('Database Schema')['Database Table'].apply(list).to_dict()
print (out2)
{'abc': ['customer', 'cust'], 'def': ['Student']}
print (out2['abc'])
['customer', 'cust']
print (out2['def'])
['Student']
Anf 如果需要组合 - 一个元素的标量和多个值的列表:
out3 = (get_tables.groupby('Database Schema')['Database Table']
.apply(lambda x: x.tolist() if len(x) > 1 else x.iat[0])
.to_dict())
print (out3)
{'abc': ['customer', 'cust'], 'def': 'Student'}
print (out3['abc'])
['customer', 'cust']
print (out3['def'])
Student
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句