我遇到了一个问题。 我有一个看起来像这样的字典列表:
dict_list=[{'alfa':['001','2'], 'beta':['001','3'], 'gamma':['001','2']},
{'alfa':['002','6'], 'beta':['002','4'], 'omega':['002','7']}]
我的意图是像这样创建一个 csv:
WORD, TEXT, FREQ
alfa, 001, 2
alfa, 002, 6
beta, 001, 3
beta, 002, 4
gamma,001, 2
omega,002, 7
你认为有可能解决吗?
请您参考如下方法:
pandas 提供了一种非常直观的方式来考虑遍历字典列表。因为列表中的每个元素都是一个 dict,可以很容易地转换为 pandas.DataFrame,所以您可以循环遍历列表,创建一个 DataFrame 为每个元素,然后 concat 它们。
In [20]: l = []
In [21]: for dct in dict_list:
...: l.append(
...: pandas.DataFrame(dct).transpose()
...: )
In [22]: tmp = pandas.concat(l) # aggregate them all
In [23]: print(tmp)
Out[23]:
0 1
alfa 001 2
beta 001 3
gamma 001 2
alfa 002 6
beta 002 4
omega 002 7
pandas 很容易写入 csv,所以你可以这样做:
In [21]: tmp.to_csv('/my-file-path.csv')
使用 pandas 对象,您可以对它们进行排序(如您想要的结果):
In [24]: tmp.sort_index()
Out[24]:
0 1
alfa 001 2
alfa 002 6
beta 001 3
beta 002 4
gamma 001 2
omega 002 7
还有很多,更多!要准确复制您要查找的内容,只需重命名 Index 和列,如下所示:
In [30]: tmp.index.name = 'WORD'
In [36]: tmp = tmp.rename(columns={0: 'TEXT', 1: 'FREQ'})
In [37]: print(tmp)
TEXT FREQ
WORD
alfa 001 2
beta 001 3
gamma 001 2
alfa 002 6
beta 002 4
omega 002 7
