版本 0.14.1 (2014年7月11日)#
这是 0.14.0 的一个次要版本,包含少量 API 更改、一些新功能、增强和性能改进,以及大量的错误修复。我们建议所有用户升级到此版本。
亮点包括
新增方法
select_dtypes()
用于根据 dtype 选择列,以及sem()
用于计算均值标准误差。支持 dateutil 时区(参见 文档)。
在
read_csv()
文本解析器中支持忽略整行注释。新增了关于 选项和设置 的文档部分。
大量错误修复。
API 变更#
现在,在构造 openpyxl 写入器时,Openpyxl 会引发 ValueError 而不是在 pandas 导入时发出警告 (GH 7284)。
对于
StringMethods.extract
,当未找到匹配项时,结果(仅包含NaN
值)现在也具有dtype=object
而不是float
(GH 7242)。Period
对象在与非Period
的另一个对象使用==
进行比较时,不再引发TypeError
。现在,当使用==
比较Period
与另一个对象时,如果另一个对象不是Period
,则返回False
。 (GH 7376)此前,
offsets.apply
、rollforward
和rollback
操作中是否重置时间的行为因偏移量而异。随着所有偏移量支持normalize
关键字(默认为 False,保留时间,见下文),某些偏移量(BusinessMonthBegin、MonthEnd、BusinessMonthEnd、CustomBusinessMonthEnd、BusinessYearBegin、LastWeekOfMonth、FY5253Quarter、LastWeekOfMonth、Easter)的行为发生了变化。In [6]: from pandas.tseries import offsets In [7]: d = pd.Timestamp('2014-01-01 09:00') # old behaviour < 0.14.1 In [8]: d + offsets.MonthEnd() Out[8]: pd.Timestamp('2014-01-31 00:00:00')
从 0.14.1 版本开始,所有偏移量默认保留时间。旧行为可以通过
normalize=True
获得。# new behaviour In [1]: d + offsets.MonthEnd() Out[1]: Timestamp('2014-01-31 09:00:00') In [2]: d + offsets.MonthEnd(normalize=True) Out[2]: Timestamp('2014-01-31 00:00:00')
请注意,对于其他偏移量,默认行为没有改变。
在文本解析中,重新添加
#N/A N/A
作为默认 NA 值(0.12 版本的回归)(GH 5521)。当使用
.where
和非np.nan
值进行原地设置时,会引发TypeError
,因为这与df[mask] = None
这样的设置项表达式不一致 (GH 7656)。
增强功能#
为
value_counts
和nunique
添加dropna
参数 (GH 5569)。添加
select_dtypes()
方法以允许根据 dtype 选择列 (GH 7316)。请参阅 文档。所有
offsets
都支持normalize
关键字,用于指定offsets.apply
、rollforward
和rollback
是否重置时间(小时、分钟等)或不重置(默认False
,保留时间)(GH 7156)。import pandas.tseries.offsets as offsets day = offsets.Day() day.apply(pd.Timestamp("2014-01-01 09:00")) day = offsets.Day(normalize=True) day.apply(pd.Timestamp("2014-01-01 09:00"))
PeriodIndex
以与DatetimeIndex
相同的格式表示 (GH 7601)。StringMethods
现在可在空 Series 上工作 (GH 7242)。文件解析器
read_csv
和read_table
现在会忽略由参数comment
提供的行注释,该参数只接受一个字符用于 C 读取器。特别是,它们允许在文件数据开始之前存在注释 (GH 2685)。为
read_csv()
中同时使用chunksize
和nrows
添加NotImplementedError
(GH 6774)。现在存在用于基本读取公共 S3 存储桶的测试 (GH 7281)。
read_html
现在支持encoding
参数,该参数传递给底层解析器库。您可以使用此参数读取非 ASCII 编码的网页 (GH 7323)。read_excel
现在支持以与read_csv
相同的方式从 URL 读取。 (GH 6809)支持 dateutil 时区,现在可以像 pytz 时区一样在 pandas 中使用。 (GH 4688)
In [3]: rng = pd.date_range( ...: "3/6/2012 00:00", periods=10, freq="D", tz="dateutil/Europe/London" ...: ) ...: In [4]: rng.tz Out[4]: tzfile('/usr/share/zoneinfo/Europe/London')
参见 文档。
为
Series
、DataFrame
、Panel
和Groupby
实现了sem
(均值标准误差)操作 (GH 6897)。将
nlargest
和nsmallest
添加到Series
groupby
允许列表中,这意味着您现在可以在SeriesGroupBy
对象上使用这些方法 (GH 7053)。所有偏移量
apply
、rollforward
和rollback
现在可以处理np.datetime64
,以前会产生ApplyTypeError
(GH 7452)。Period
和PeriodIndex
的值可以包含NaT
(GH 7485)。支持对在项目轴(分别为
index
、columns
和items
)上具有非唯一标签的Series
、DataFrame
和Panel
对象进行 pickle 化 (GH 7370)。改进了混合空对象的日期时间/时间差推断。解释包含所有空元素的对象索引时,从 0.13.1 版本回归 (GH 7431)。
性能#
实验性功能#
错误修复#
DataFrame.where
在对称形状的 frame 和传入的 DataFrame 类型 'other' 参数时存在错误 (GH 7506)。Panel 索引与 MultiIndex 轴的错误 (GH 7516)。
具有重复索引和非精确端点的日期时间切片索引出现回归 (GH 7523)。
列表的列表和单一类型与混合类型在设置项时存在的错误 (GH 7551:)
非对齐 Series 的时间操作错误 (GH 7500)。
分配不完整 Series 时的 timedelta 推断错误 (GH 7592)。
带有 Series 和整数类型列名的 groupby
.nth
错误 (GH 7559)。带有布尔访问器的
Series.get
错误 (GH 7407)。value_counts
中NaT
未被识别为缺失值 (NaN
) 的错误 (GH 7423)。折线图在
secondary_y=True
时未设置正确xlim
的错误 (GH 7459)。分组
hist
和scatter
图使用旧的figsize
默认值的错误 (GH 7394)。使用
DataFrame.plot
绘制子图时,hist
即使子图数量为一个也会清除传入ax
的错误 (GH 7391)。使用
DataFrame.boxplot
绘制子图时,如果子图数量超过 1,by
关键字会引发ValueError
的错误 (GH 7391)。子图中
ticklabels
和labels
显示规则不同的错误 (GH 5897)。Panel.apply
在 MultiIndex 作为轴时的错误 (GH 7469)。DatetimeIndex.insert
未保留name
和tz
的错误 (GH 7299)。DatetimeIndex.asobject
未保留name
的错误 (GH 7299)。MultiIndex 切片与日期时间范围(字符串和 Timestamps)的错误 (GH 7429)。
Index.min
和max
未正确处理nan
和NaT
的错误 (GH 7261)。PeriodIndex.min/max
结果为int
的错误 (GH 7609)。resample
中,如果传入how
,则fill_method
被忽略的错误 (GH 2073)。TimeGrouper
未排除由key
指定的列的错误 (GH 7227)。DataFrame
和Series
柱状图和条形图在指定bottom
和left
关键字时引发TypeError
的错误 (GH 7226)。DataFrame.hist
包含非数字列时引发TypeError
的错误 (GH 7277)。Index.delete
未保留name
和freq
属性的错误 (GH 7302)。DataFrame.query()
/eval
中,带有 @ 符号的本地字符串变量被错误地视为临时变量并尝试删除的错误 (GH 7300)。Float64Index
不允许重复项的错误 (GH 7149)。DataFrame.replace()
中,truthy 值被替换的错误 (GH 7140)。StringMethods.extract()
中,单个匹配组 Series 使用匹配器名称而不是组名称的错误 (GH 7313)。isnull()
在mode.use_inf_as_null == True
时,遇到inf
/-inf
未返回True
的错误 (GH 7315)。东半球时区的 inferred_freq 结果为 None 的错误 (GH 7310)。
Easter
在偏移量为负时返回错误日期的错误 (GH 7195)。.div
、整数 dtypes 和除以零的广播错误 (GH 7325)。CustomBusinessDay.apply
传入np.datetime64
对象时引发NameError
的错误 (GH 7196)。MultiIndex.append
、concat
和pivot_table
未保留时区的错误 (GH 6606)。.loc
使用单层 MultiIndex(未嵌套)上的索引器列表的错误 (GH 7349)。Series.map
映射具有不同长度元组键的字典时的错误 (GH 7333)。所有
StringMethods
现在都可以在空 Series 上工作的错误 (GH 7242)。修复
read_sql
在查询不包含 'select' 时委托给read_sql_query
的问题 (GH 7324)。在调用
np.isnan
时,将字符串列名分配给具有Float64Index
的DataFrame
引发TypeError
的错误 (GH 7366)。NDFrame.replace()
未正确替换具有Period
值的对象的错误 (GH 7379)。.ix
getitem 应始终返回 Series 的错误 (GH 7150)。MultiIndex 切片与不完整索引器的错误 (GH 7399)。
MultiIndex 切片在切片级别中带有步长的错误 (GH 7400)。
DatetimeIndex
中的负索引器未正确切片的错误 (GH 7408)。convert_objects
中布尔对象转换为nan
的错误 (GH 7416)。quantile
忽略 axis 关键字参数的错误 (GH 7306)。nanops._maybe_null_out
不适用于复数的错误 (GH 7353)。在 1 维
nan
数组中axis==0
时,一些nanops
函数的错误 (GH 7354)。nanops.nanmedian
在axis==None
时不工作的错误 (GH 7352)。nanops._has_infs
不适用于许多 dtypes 的错误 (GH 7357)。StataReader.data
读取 0 观察值 dta 失败的错误 (GH 7369)。StataReader
在读取包含固定宽度字符串的 Stata 13 (117) 文件时的错误 (GH 7360)。StataWriter
忽略编码的错误 (GH 7286)。DatetimeIndex
比较未正确处理NaT
的错误 (GH 7529)。将带有
tzinfo
的输入传递给某些偏移量的apply
、rollforward
或rollback
会重置tzinfo
或引发ValueError
的错误 (GH 7465)。DatetimeIndex.to_period
、PeriodIndex.asobject
、PeriodIndex.to_timestamp
未保留name
的错误 (GH 7485)。DatetimeIndex.to_period
和PeriodIndex.to_timestamp
错误地处理NaT
的错误 (GH 7228)。offsets.apply
、rollforward
和rollback
可能返回普通datetime
的错误 (GH 7502)。resample
在目标包含NaT
时引发ValueError
的错误 (GH 7227)。Timestamp.tz_localize
重置nanosecond
信息的错误 (GH 7534)。DatetimeIndex.asobject
包含NaT
时引发ValueError
的错误 (GH 7539)。Timestamp.__new__
未正确保留纳秒的错误 (GH 7610)。Index.astype(float)
返回object
dtypeIndex
的错误 (GH 7464)。DataFrame.reset_index
丢失tz
的错误 (GH 3950)。DatetimeIndex.freqstr
在freq
为None
时引发AttributeError
的错误 (GH 7606)。由
TimeGrouper
创建的GroupBy.size
引发AttributeError
的错误 (GH 7453)。单列柱状图未对齐的错误 (GH 7498)。
带有 tz-aware 时间序列的面积图引发
ValueError
的错误 (GH 7471)。非单调
Index.union
可能错误地保留name
的错误 (GH 7458)。DatetimeIndex.intersection
未保留时区的错误 (GH 4690)。rolling_var
中,当窗口大于数组时会引发错误的错误 (GH 7297)。最后绘制的时间序列决定
xlim
的错误 (GH 2960)。secondary_y
轴未被考虑用于时间序列xlim
的错误 (GH 3490)。Float64Index
分配非标量索引器的错误 (GH 7586)。pandas.core.strings.str_contains
在regex=False
和case=False
时未能正确进行不区分大小写匹配的错误 (GH 7505)。expanding_cov
、expanding_corr
、rolling_cov
和rolling_corr
对于两个索引不匹配的参数的错误 (GH 7512)。to_sql
将布尔列视为文本列的错误 (GH 7678)。分组
hist
未正确处理rot
kw 和sharex
kw 的错误 (GH 7234)。.loc
在object
dtype 索引上执行回退整数索引的错误 (GH 7496)。PeriodIndex
构造函数在传入Series
对象时存在的错误(回归)(GH 7701)。
贡献者#
共有 46 人为此版本贡献了补丁。名字旁边带有“+”的人是首次贡献补丁。
Andrew Rosenfeld
Andy Hayden
Benjamin Adams +
Benjamin M. Gross +
Brian Quistorff +
Brian Wignall +
DSM
Daniel Waeber
David Bew +
David Stephens
Jacob Schaer
Jan Schulz
John David Reaver
John W. O’Brien
Joris Van den Bossche
Julien Danjou +
K.-Michael Aye
Kevin Sheppard
Kyle Meyer
Matt Wittmann
Matthew Brett +
Michael Mueller +
Mortada Mehyar
Phillip Cloud
Rob Levy +
Schaer, Jacob C +
Stephan Hoyer
Thomas Kluyver
Todd Jennings
Tom Augspurger
TomAugspurger
bwignall
clham
dsm054 +
helger +
immerrr
jaimefrio
jreback
lexual
onesandzeroes
rockg
sanguineturtle +
seth-p +
sinhrks
unknown
yelite +