如何将字典中的列表添加到自己的列中?



我有一个用列表作为值的字典,如图所示:

my_dict  = {1: ['Home', 'Stories'], 2: ['Sounds', 'Stories', 'Home', 'Home', 'Stories'], 3: ['Journeys / Series', 'Journeys / Series', 'Journeys / Series'], 4: [ 'Home', 'Home', 'Home'], 5: ['Home', 'Stories', 'Home', 'Home', 'Home', 'Cancellation Flow'], 6: ['My Account', 'My Account']}

我想把这些字典中的列表转换成字符串,并将它们附加到它们自己的列中。

这就是我到目前为止所尝试的,但它不起作用,因为字典中的值是列表。

keys_list = list(my_dict.keys())
values_list = list(my_dict.values())
df_keyvalues = pd.DataFrame({'Column1': keys_list, 'Column2': values_list})
df_keyvalues

我希望我的输出看起来像这样:

User       List
1          'Home', 'Stories'
2          'Sounds', 'Stories', 'Home', 'Home', 'Stories'
3          'Journeys / Series', 'Journeys / Series', 'Journeys / Series'
4          'Home', 'Home', 'Home'
5          'Home', 'Stories', 'Home', 'Home', 'Home', 'Cancellation Flow'
6          'My Account', 'My Account'

使用delimiter.join(list),您可以将列表连接为字符串:

keys_list = list(my_dict.keys())
values_list = [", ".join(i) for i in list(my_dict.values())]
df_keyvalues = pd.DataFrame({'User': keys_list, 'List': values_list})

这是你要找的吗?

不需要Dataframe来产生输出

my_dict = {
1: ['Home', 'Stories'],
2: ['Sounds', 'Stories', 'Home', 'Home', 'Stories'],
3: ['Journeys / Series', 'Journeys / Series', 'Journeys / Series'],
4: ['Home', 'Home', 'Home'],
5: ['Home', 'Stories', 'Home', 'Home', 'Home', 'Cancellation Flow'],
6: ['My Account', 'My Account']
}
PAD = 10
def quote(s):
return f"'{s}'"
print('{:<{}}List'.format('User', PAD))
for k, v in my_dict.items():
print(f'{k:<{PAD}}{", ".join(map(quote, v))}')

输出:

User      List
1         'Home', 'Stories'
2         'Sounds', 'Stories', 'Home', 'Home', 'Stories'
3         'Journeys / Series', 'Journeys / Series', 'Journeys / Series'
4         'Home', 'Home', 'Home'
5         'Home', 'Stories', 'Home', 'Home', 'Home', 'Cancellation Flow'
6         'My Account', 'My Account'

Try

keys_list = list(my_dict.keys())
values_list = list(my_dict.values())
df_keyvalues = pd.DataFrame({'Column1': keys_list, 'Column2': values_list})
#This will convert list to a string
df_keyvalues['Column2'] = df_keyvalues['Column2'].apply(lambda x: ','.join(x))
df_keyvalues

但是它不会是"Home";Stories"它将是家,故事,我希望这不会是一个问题。

如果您的意图是将list中的字符串转换为单个字符串(其中list中的字符串将在结果字符串中以逗号分隔),则以下是解决方案。在使用dict.keys()和dict.values()时不需要显式提及list(),因为keys()和values()函数都只返回列表。

keys_list = my_dict.keys()
values_list = my_dict.values()
new_list=[",".join(i) for i in values_list]
df_keyvalues = pd.DataFrame({'User': keys_list, 'List': new_list})
print(df_keyvalues.to_string(index=False))

输出将是单个字符串,而不是用逗号分隔的字符串。输出

最新更新