【发布时间】:2020-07-22 04:40:07
【问题描述】:
给定以下形式的数据:
ydata = [{'a': 1, 'b': 2}, {'a': 3, 'd': 4}, None]
yindex = [50, 51, 52]
y = pd.Series(ydata, name='y', index=pd.Index(yindex, name='i'))
将这个 y 系列转换为如下所示的 DataFrame 的最有效,甚至是最惯用/首选的方法是什么?
a b d
i
50 1.0 2.0 NaN
51 3.0 NaN 4.0
52 NaN NaN NaN
一个天真的解决方案是:
pd.DataFrame([rec if rec else {} for rec in y.tolist()],
index=y.index)
【问题讨论】:
-
df=pd.DataFrame(ydata, index=yindex)应该可以解决问题 -
@BryceWayne 我只是在构建
y以进行演示。数据已经从 DataFrame 的列中传给我了。 -
我想你的解决方案在这里应该是不错的方法。
-
试试
pd.DataFrame(y.to_dict()).TPS如果你有重复的索引,这将失败。