从Pandas数据框列生成列表(包括缺失值)

时间:2016-03-12 16:24:44

标签: python pandas

这是我正在使用的简单Pandas数据框:

>>> df2
    Name  Day  Score
0  Allen    1     25
5  Allen    3      9

我想要做的是生成艾伦分数的列表,并且还表示从1到5的所有日期都没有得分的日子。这是我能够做到的:

>>> [df2[df2['Day']==i]['Score'].values[0] if i in list(df2['Day']) else None for i in range(1,6)]
[25, None, 9, None, None]

肯定有一种不那么笨重的方法吗? 它是什么?

在相关的说明中,我想为更大的数据框中的每个人这样做。最好的方法是什么?现在,我能想到的只是将应用与上面的表达式一起使用,但是再次看起来比这更加笨拙。谢谢你的任何建议!

1 个答案:

答案 0 :(得分:2)

我首先将索引设置为'Day'并重新编制索引:

>>> df2 = df2.set_index('Day').reindex(range(1,6))

      Name  Score
Day              
1    Allen     25
2      NaN    NaN
3    Allen      9
4      NaN    NaN
5      NaN    NaN

从那里你有很多选项可以进一步处理。如果你只想要一个清单:

>>> df2['Score'].tolist()

[25.0, nan, 9.0, nan, nan]

您可能需要查看fillna()以了解指定缺失值的不同选项。

相关问题