如何将值为列表的字典转换为仅含单列的pandas DataFrame?
解法1:直接将列表作为单列元素存储
你想要每个字典值对应一行、整行存完整列表的需求,可以直接通过指定列值和索引实现,不需要用from_dict方法:
result = pd.DataFrame({'sl_list': dict_l.values()}, index=dict_l.keys())
生成的result只有1列sl_list,索引为1~26,每个单元格对应你生成的列表,完全符合预期。
解法2:修正拼接字符串的报错
你之前拼接报错是因为join方法只能拼接字符串类型的元素,原数据是float类型,需要先做类型转换,修正后的代码如下:
# 先按你原来的方法生成多列DataFrame result = pd.DataFrame.from_dict(dict_l, orient='index') # 转字符串后再拼接 result['Line Name'] = result.apply(lambda x: ', '.join(x.dropna().astype(str)), axis=1) # 如果只需要拼接后的列,可以只保留这一列 result = result[['Line Name']]
这样就能得到每行是逗号拼接的字符串的单列DataFrame。
内容的提问来源于stack exchange,提问作者Francisco Colina
相关产品推荐
相关产品推荐

