版本 0.7.3(2012 年 4 月 12 日)# 这是 0.7.2 的一个小版本,修复了许多小错误并添加了许多不错的新功能。还有一些 API 更改需要注意;这些不会影响很多用户,我们倾向于将其称为“错误修复”,即使它们确实构成了行为的改变。请参阅GitHub 上的完整发行说明或问题跟踪器以获取完整列表。 新功能# 新的固定宽度文件阅读器,read_fwf 用于制作散点图矩阵的新scatter_matrix函数 from pandas.tools.plotting import scatter_matrix scatter_matrix(df, alpha=0.2) # noqa F821 stacked向 Series 和 DataFrame 的堆叠条形图plot方法 添加参数。 df.plot(kind="bar", stacked=True) # noqa F821 df.plot(kind="barh", stacked=True) # noqa F821 将 log x 和 y缩放选项添加到 DataFrame.plot和Series.plot kurt向 Series 和 DataFrame添加方法以计算峰度 NA 布尔比较 API 更改# 恢复了对非数字系列中处理NA 值(通常表示为NaN或 )的一些更改:None In [1]: series = pd.Series(["Steve", np.nan, "Joe"]) In [2]: series == "Steve" Out[2]: 0 True 1 False 2 False Length: 3, dtype: bool In [3]: series != "Steve" Out[3]: 0 False 1 True 2 True Length: 3, dtype: bool 相比之下,NA / NaN 总是会出现,除非False其中 !=is True。在存在 NA 数据的情况下,要非常小心布尔算术,尤其是求反。如果您担心这一点,您可能希望在布尔数组运算中添加显式 NA 过滤器: In [4]: mask = series == "Steve" In [5]: series[mask & series.notnull()] Out[5]: 0 Steve Length: 1, dtype: object 虽然在比较中传播 NA 对于某些用户来说似乎是正确的行为(并且您可以从纯粹的技术角度争论这是正确的做法),但评估结果表明,在任何地方(包括数值数组)传播 NA 会导致给用户带来大量的问题。因此,采取了“实用胜于纯粹”的方法。这个问题可能会在未来的某个时候被重新讨论。 其他 API 更改# 当调用apply分组的 Series 时,返回值也将是一个 Series,以groupby与 DataFrame 的行为更加一致: In [6]: df = pd.DataFrame( ...: { ...: "A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo", "foo"], ...: "B": ["one", "one", "two", "three", "two", "two", "one", "three"], ...: "C": np.random.randn(8), ...: "D": np.random.randn(8), ...: } ...: ) ...: In [7]: df Out[7]: A B C D 0 foo one 0.469112 -0.861849 1 bar one -0.282863 -2.104569 2 foo two -1.509059 -0.494929 3 bar three -1.135632 1.071804 4 foo two 1.212112 0.721555 5 bar two -0.173215 -0.706771 6 foo one 0.119209 -1.039575 7 foo three -1.044236 0.271860 [8 rows x 4 columns] In [8]: grouped = df.groupby("A")["C"] In [9]: grouped.describe() Out[9]: count mean std min 25% 50% 75% max A bar 3.0 -0.530570 0.526860 -1.135632 -0.709248 -0.282863 -0.228039 -0.173215 foo 5.0 -0.150572 1.113308 -1.509059 -1.044236 0.119209 0.469112 1.212112 [2 rows x 8 columns] In [10]: grouped.apply(lambda x: x.sort_values()[-2:]) # top 2 values Out[10]: A bar 1 -0.282863 5 -0.173215 foo 0 0.469112 4 1.212112 Name: C, Length: 4, dtype: float64 贡献者# 共有 15 人为此版本贡献了补丁。名字带有“+”的人首次贡献了补丁。 亚伯拉罕·弗拉克斯曼 + 亚当·克莱因 安德烈亚斯 H. + 常社 迪特·范登布斯切 雅克·卡瓦姆 + K.-迈克尔·埃 + 卡米尔·基西尔 + 马丁·布莱斯 + 船长西博尔德 托马斯·克鲁弗 韦斯·麦金尼 沃特·奥弗迈尔 雅罗斯拉夫·哈尔琴科 戈蒂埃+