我有一个包含~500万个元素的列表,其中列表元素表示一个观察值,它可以接受10个单独的值。这些存储为元组,如下所示:
[(0, 0.23411436),
(1, 0.011154618),
(2, 0.32306415),
(3, 0.011153304),
(4, 0.011153304),
(5, 0.011153304),
(6, 0.011153304),
(7, 0.36474636),
(8, 0.011153304),
(9, 0.011154029)]
我想将其转换为 pandas 数据帧,其中每个元组中的第一个值是一列,第二个值是该列的条目。问题是生成这些值的模型抑制了 0.01 <值,因此某些元组条目如下所示:>
[(0, 0.23411436),
(1, 0.011154618),
(3, 0.011153304),
(4, 0.011153304),
(5, 0.011153304),
(7, 0.36474636),
(9, 0.011154029)]
如何将其转换为数据帧,将省略的值替换为零?
您可以在一行中完成,如下所示:
df = pd.DataFrame([dict(lst), dict(short_lst)]).fillna(0)
以下是完整示例:
import pandas as pd
lst = [(0, 0.23411436),
(1, 0.011154618),
(2, 0.32306415),
(3, 0.011153304),
(4, 0.011153304),
(5, 0.011153304),
(6, 0.011153304),
(7, 0.36474636),
(8, 0.011153304),
(9, 0.011154029)]
short_lst = [(0, 0.23411436),
(1, 0.011154618),
(3, 0.011153304),
(4, 0.011153304),
(5, 0.011153304),
(7, 0.36474636),
(9, 0.011154029)]
df = pd.DataFrame([dict(lst), dict(short_lst)]).fillna(0)
print(df.to_string())
# 0 1 2 3 4 5 6 7 8 9
# 0 0.234114 0.011155 0.323064 0.011153 0.011153 0.011153 0.011153 0.364746 0.011153 0.011154
# 1 0.234114 0.011155 0.000000 0.011153 0.011153 0.011153 0.000000 0.364746 0.000000 0.011154