版本0.16.1(2015年5月11日)#

这是从0.16.0开始的一个较小的错误修复版本,包括大量错误修复以及几个新功能、增强功能和性能改进。我们建议所有用户升级到此版本。

亮点包括:

  • 支持 CategoricalIndex ,基于类别的索引,请参见 here

  • 关于如何做出贡献的新部分 Pandas ,请参见 here

  • 修订了“合并、连接和连接”文档,包括图形示例以便于理解每个操作,请参见 here

  • 新方法 sample 用于从系列、数据帧和面板中随机抽取样本。看见 here

  • 默认设置 Index 打印已更改为更统一的格式,请参见 here

  • BusinessHour datetime-offset is now supported, see here

  • 进一步增强了 .str 访问器以使字符串操作更容易,请参见 here

警告

在Pandas0.17.0中,子包 pandas.io.data 将被移除以支持可单独安装的程序包 (GH8961 )。

增强#

CategoricalIndex#

我们介绍了一种 CategoricalIndex ,这是一种新类型的索引对象,可用于支持具有重复项的索引。这是一个容器,围绕着一个 Categorical (在v0.15.0中引入),并允许对具有大量重复元素的索引进行高效的索引和存储。在0.16.1之前,设置一个 DataFrame/Series 使用一个 category Dtype会将其转换为常规的基于对象的 Index

In [1]: df = pd.DataFrame({'A': np.arange(6),
   ...:                    'B': pd.Series(list('aabbca'))
   ...:                           .astype('category', categories=list('cab'))
   ...:                    })
   ...:

In [2]: df
Out[2]:
   A  B
0  0  a
1  1  a
2  2  b
3  3  b
4  4  c
5  5  a

In [3]: df.dtypes
Out[3]:
A       int64
B    category
dtype: object

In [4]: df.B.cat.categories
Out[4]: Index(['c', 'a', 'b'], dtype='object')

设置索引,将创建一个 CategoricalIndex

In [5]: df2 = df.set_index('B')

In [6]: df2.index
Out[6]: CategoricalIndex(['a', 'a', 'b', 'b', 'c', 'a'], categories=['c', 'a', 'b'], ordered=False, name='B', dtype='category')

索引使用 __getitem__/.iloc/.loc/.ix 其工作原理类似于具有重复项的索引。索引器必须在该类别中,否则操作将引发。

In [7]: df2.loc['a']
Out[7]:
   A
B
a  0
a  1
a  5

并保留了 CategoricalIndex

In [8]: df2.loc['a'].index
Out[8]: CategoricalIndex(['a', 'a', 'a'], categories=['c', 'a', 'b'], ordered=False, name='B', dtype='category')

排序将按类别的顺序排序

In [9]: df2.sort_index()
Out[9]:
   A
B
c  4
a  0
a  1
a  5
b  2
b  3

对索引的GROUP BY操作也将保留索引性质

In [10]: df2.groupby(level=0).sum()
Out[10]:
   A
B
c  4
a  6
b  5

In [11]: df2.groupby(level=0).sum().index
Out[11]: CategoricalIndex(['c', 'a', 'b'], categories=['c', 'a', 'b'], ordered=False, name='B', dtype='category')

重新编制索引操作将根据传递的索引器的类型返回结果索引,这意味着传递列表将返回一个普通的--索引;使用 Categorical 将返回一个 CategoricalIndex ,根据传递的 Categorical 数据类型。这使得人们可以任意地对这些索引进行索引,即使这些值不在类别中,就像您可以对任何Pandas索引进行重新索引一样。

In [12]: df2.reindex(['a', 'e'])
Out[12]:
     A
B
a  0.0
a  1.0
a  5.0
e  NaN

In [13]: df2.reindex(['a', 'e']).index
Out[13]: pd.Index(['a', 'a', 'a', 'e'], dtype='object', name='B')

In [14]: df2.reindex(pd.Categorical(['a', 'e'], categories=list('abcde')))
Out[14]:
     A
B
a  0.0
a  1.0
a  5.0
e  NaN

In [15]: df2.reindex(pd.Categorical(['a', 'e'], categories=list('abcde'))).index
Out[15]: pd.CategoricalIndex(['a', 'a', 'a', 'e'],
                             categories=['a', 'b', 'c', 'd', 'e'],
                             ordered=False, name='B',
                             dtype='category')

请参阅 documentation 想要更多。 (GH7629GH10038GH10039 )

样本#

Series、DataFrames和Panels现在有了一个新方法: sample() 。该方法接受要返回的特定行数或列数,或者接受总的行数或列数的一小部分。它还具有使用或不使用替换进行采样、为非均匀采样传递权重列以及设置种子值以便于复制的选项。 (GH2419 )

In [1]: example_series = pd.Series([0, 1, 2, 3, 4, 5])

# When no arguments are passed, returns 1
In [2]: example_series.sample()
Out[2]: 
3    3
Length: 1, dtype: int64

# One may specify either a number of rows:
In [3]: example_series.sample(n=3)
Out[3]: 
2    2
1    1
0    0
Length: 3, dtype: int64

# Or a fraction of the rows:
In [4]: example_series.sample(frac=0.5)
Out[4]: 
1    1
5    5
3    3
Length: 3, dtype: int64

# weights are accepted.
In [5]: example_weights = [0, 0, 0.2, 0.2, 0.2, 0.4]

In [6]: example_series.sample(n=3, weights=example_weights)
Out[6]: 
2    2
4    4
3    3
Length: 3, dtype: int64

# weights will also be normalized if they do not sum to one,
# and missing values will be treated as zeros.
In [7]: example_weights2 = [0.5, 0, 0, 0, None, np.nan]

In [8]: example_series.sample(n=1, weights=example_weights2)
Out[8]: 
0    0
Length: 1, dtype: int64

应用于DataFrame时,可以传递列的名称以指定从行采样时的采样权重。

In [9]: df = pd.DataFrame({"col1": [9, 8, 7, 6], "weight_column": [0.5, 0.4, 0.1, 0]})

In [10]: df.sample(n=3, weights="weight_column")
Out[10]: 
   col1  weight_column
0     9            0.5
1     8            0.4
2     7            0.1

[3 rows x 2 columns]

字符串方法增强功能#

Continuing from v0.16.0 ,下面的增强使字符串操作更容易,并且与标准的python字符串操作更一致。

  • Added StringMethods (.str accessor) to Index (GH9068)

    这个 .str 访问器现在可用于这两个 SeriesIndex

    In [11]: idx = pd.Index([" jack", "jill ", " jesse ", "frank"])
    
    In [12]: idx.str.strip()
    Out[12]: Index(['jack', 'jill', 'jesse', 'frank'], dtype='object')
    

    One special case for the .str accessor on Index is that if a string method returns bool, the .str accessor will return a np.array instead of a boolean Index (GH8875). This enables the following expression to work naturally:

    In [13]: idx = pd.Index(["a1", "a2", "b1", "b2"])
    
    In [14]: s = pd.Series(range(4), index=idx)
    
    In [15]: s
    Out[15]: 
    a1    0
    a2    1
    b1    2
    b2    3
    Length: 4, dtype: int64
    
    In [16]: idx.str.startswith("a")
    Out[16]: array([ True,  True, False, False])
    
    In [17]: s[s.index.str.startswith("a")]
    Out[17]: 
    a1    0
    a2    1
    Length: 2, dtype: int64
    
  • 以下新方法可通过 .str 访问器将函数应用于每个值。 (GH9766GH9773GH10031GH10045GH10052 )

    方法:

    capitalize()

    swapcase()

    normalize()

    partition()

    rpartition()

    index()

    rindex()

    translate()

  • split 现在需要 expand 关键字来指定是否展开维度。 return_type 已弃用。 (GH9847 )

    In [18]: s = pd.Series(["a,b", "a,c", "b,c"])
    
    # return Series
    In [19]: s.str.split(",")
    Out[19]: 
    0    [a, b]
    1    [a, c]
    2    [b, c]
    Length: 3, dtype: object
    
    # return DataFrame
    In [20]: s.str.split(",", expand=True)
    Out[20]: 
       0  1
    0  a  b
    1  a  c
    2  b  c
    
    [3 rows x 2 columns]
    
    In [21]: idx = pd.Index(["a,b", "a,c", "b,c"])
    
    # return Index
    In [22]: idx.str.split(",")
    Out[22]: Index([['a', 'b'], ['a', 'c'], ['b', 'c']], dtype='object')
    
    # return MultiIndex
    In [23]: idx.str.split(",", expand=True)
    Out[23]: 
    MultiIndex([('a', 'b'),
                ('a', 'c'),
                ('b', 'c')],
               )
    
  • Improved extract and get_dummies methods for Index.str (GH9980)

其他增强功能#

  • BusinessHour 现在支持偏移量,表示从09:00到17:00的营业时间 BusinessDay 默认情况下。看见 Here 有关详细信息,请参阅。 (GH7905 )

    In [24]: pd.Timestamp("2014-08-01 09:00") + pd.tseries.offsets.BusinessHour()
    Out[24]: Timestamp('2014-08-01 10:00:00')
    
    In [25]: pd.Timestamp("2014-08-01 07:00") + pd.tseries.offsets.BusinessHour()
    Out[25]: Timestamp('2014-08-01 10:00:00')
    
    In [26]: pd.Timestamp("2014-08-01 16:30") + pd.tseries.offsets.BusinessHour()
    Out[26]: Timestamp('2014-08-04 09:30:00')
    
  • DataFrame.diff 现在需要一个 axis 确定差异方向的参数 (GH9727 )

  • 允许 clipclip_lower ,以及 clip_upper 接受类似数组的参数作为阈值(这是从0.11.0开始的回归)。这些方法现在有一个 axis 确定系列或DataFrame将如何与阈值对齐的参数。 (GH6966 )

  • DataFrame.mask() and Series.mask() now support same keywords as where (GH8801)

  • drop 函数现在可以接受 errors 要隐藏的关键字 ValueError 当目标数据中不存在任何标签时引发。 (GH6736 )

    In [27]: df = pd.DataFrame(np.random.randn(3, 3), columns=["A", "B", "C"])
    
    In [28]: df.drop(["A", "X"], axis=1, errors="ignore")
    Out[28]: 
              B         C
    0 -0.706771 -1.039575
    1 -0.424972  0.567020
    2 -1.087401 -0.673690
    
    [3 rows x 2 columns]
    
  • 添加对使用破折号分隔年份和季度的支持,例如2014-Q1。 (GH9688 )

  • Allow conversion of values with dtype datetime64 or timedelta64 to strings using astype(str) (GH9757)

  • get_dummies 函数现在接受 sparse 关键词。如果设置为 True ,回报 DataFrame 是稀疏的,例如 SparseDataFrame 。 (GH8823 )

  • Period 现在接受 datetime64 作为值输入。 (GH9054 )

  • 当时间定义中缺少前导零时,允许时间增量字符串转换,即 0:00:00 VS 00:00:00 。 (GH9570 )

  • Allow Panel.shift with axis='items' (GH9890)

  • 现在尝试编写一个Excel文件会引发 NotImplementedError 如果 DataFrame 有一个 MultiIndex 而不是编写损坏的Excel文件。 (GH9794 )

  • 允许 Categorical.add_categories 接受,接受 Seriesnp.array 。 (GH9927 )

  • 添加/删除 str/dt/cat 访问者从 __dir__ 。 (GH9910 )

  • 添加 normalize 作为一个 dt 访问器方法。 (GH10047 )

  • DataFrame and Series now have _constructor_expanddim property as overridable constructor for one higher dimensionality data. This should be used only when it is really needed, see here

  • pd.lib.infer_dtype 现在返回 'bytes' 在适当的地方,在Python3中。 (GH10032 )

API更改#

  • 当将斧头传递给 df.plot( ..., ax=ax) ,即 sharex Kwarg现在将默认为 False 。其结果是xLabels和xtickLabels的可见性将不再改变。你必须自己做,才能在你的图形或场景中找到正确的轴线 sharex=True 显式(但这会更改图中所有轴的可见性,而不仅仅是传入的轴!)。如果Pandas自己创建了子情节(例如,没有传入 ax Kwarg),则默认设置仍为 sharex=True 并应用可见性更改。

  • assign() 现在按字母顺序插入新列。此前,这一命令是武断的。 (GH9777 )

  • 默认情况下, read_csvread_table 现在,我将尝试根据文件扩展名推断压缩类型。集 compression=None 以恢复以前的行为(不解压)。 (GH9770 )

不推荐使用#

  • Series.str.split's return_type keyword was removed in favor of expand (GH9847)

索引表示法#

的字符串表示形式 Index 它的子类现在已经统一了。如果值很少,它们将显示单行显示;对于许多值(但少于 display.max_seq_items ;如果有大量项目(> display.max_seq_items )将显示截断的显示(数据的头和尾)。的格式设置 MultiIndex 保持不变(多行换行显示)。显示宽度与选项相对应 display.max_seq_items ,默认为100。 (GH6482 )

以前的行为

In [2]: pd.Index(range(4), name='foo')
Out[2]: Int64Index([0, 1, 2, 3], dtype='int64')

In [3]: pd.Index(range(104), name='foo')
Out[3]: Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, ...], dtype='int64')

In [4]: pd.date_range('20130101', periods=4, name='foo', tz='US/Eastern')
Out[4]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01 00:00:00-05:00, ..., 2013-01-04 00:00:00-05:00]
Length: 4, Freq: D, Timezone: US/Eastern

In [5]: pd.date_range('20130101', periods=104, name='foo', tz='US/Eastern')
Out[5]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01 00:00:00-05:00, ..., 2013-04-14 00:00:00-04:00]
Length: 104, Freq: D, Timezone: US/Eastern

新行为

In [29]: pd.set_option("display.width", 80)

In [30]: pd.Index(range(4), name="foo")
Out[30]: RangeIndex(start=0, stop=4, step=1, name='foo')

In [31]: pd.Index(range(30), name="foo")
Out[31]: RangeIndex(start=0, stop=30, step=1, name='foo')

In [32]: pd.Index(range(104), name="foo")
Out[32]: RangeIndex(start=0, stop=104, step=1, name='foo')

In [33]: pd.CategoricalIndex(["a", "bb", "ccc", "dddd"], ordered=True, name="foobar")
Out[33]: CategoricalIndex(['a', 'bb', 'ccc', 'dddd'], categories=['a', 'bb', 'ccc', 'dddd'], ordered=True, dtype='category', name='foobar')

In [34]: pd.CategoricalIndex(["a", "bb", "ccc", "dddd"] * 10, ordered=True, name="foobar")
Out[34]: 
CategoricalIndex(['a', 'bb', 'ccc', 'dddd', 'a', 'bb', 'ccc', 'dddd', 'a',
                  'bb', 'ccc', 'dddd', 'a', 'bb', 'ccc', 'dddd', 'a', 'bb',
                  'ccc', 'dddd', 'a', 'bb', 'ccc', 'dddd', 'a', 'bb', 'ccc',
                  'dddd', 'a', 'bb', 'ccc', 'dddd', 'a', 'bb', 'ccc', 'dddd',
                  'a', 'bb', 'ccc', 'dddd'],
                 categories=['a', 'bb', 'ccc', 'dddd'], ordered=True, dtype='category', name='foobar')

In [35]: pd.CategoricalIndex(["a", "bb", "ccc", "dddd"] * 100, ordered=True, name="foobar")
Out[35]: 
CategoricalIndex(['a', 'bb', 'ccc', 'dddd', 'a', 'bb', 'ccc', 'dddd', 'a',
                  'bb',
                  ...
                  'ccc', 'dddd', 'a', 'bb', 'ccc', 'dddd', 'a', 'bb', 'ccc',
                  'dddd'],
                 categories=['a', 'bb', 'ccc', 'dddd'], ordered=True, dtype='category', name='foobar', length=400)

In [36]: pd.date_range("20130101", periods=4, name="foo", tz="US/Eastern")
Out[36]: 
DatetimeIndex(['2013-01-01 00:00:00-05:00', '2013-01-02 00:00:00-05:00',
               '2013-01-03 00:00:00-05:00', '2013-01-04 00:00:00-05:00'],
              dtype='datetime64[ns, US/Eastern]', name='foo', freq='D')

In [37]: pd.date_range("20130101", periods=25, freq="D")
Out[37]: 
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06', '2013-01-07', '2013-01-08',
               '2013-01-09', '2013-01-10', '2013-01-11', '2013-01-12',
               '2013-01-13', '2013-01-14', '2013-01-15', '2013-01-16',
               '2013-01-17', '2013-01-18', '2013-01-19', '2013-01-20',
               '2013-01-21', '2013-01-22', '2013-01-23', '2013-01-24',
               '2013-01-25'],
              dtype='datetime64[ns]', freq='D')

In [38]: pd.date_range("20130101", periods=104, name="foo", tz="US/Eastern")
Out[38]: 
DatetimeIndex(['2013-01-01 00:00:00-05:00', '2013-01-02 00:00:00-05:00',
               '2013-01-03 00:00:00-05:00', '2013-01-04 00:00:00-05:00',
               '2013-01-05 00:00:00-05:00', '2013-01-06 00:00:00-05:00',
               '2013-01-07 00:00:00-05:00', '2013-01-08 00:00:00-05:00',
               '2013-01-09 00:00:00-05:00', '2013-01-10 00:00:00-05:00',
               ...
               '2013-04-05 00:00:00-04:00', '2013-04-06 00:00:00-04:00',
               '2013-04-07 00:00:00-04:00', '2013-04-08 00:00:00-04:00',
               '2013-04-09 00:00:00-04:00', '2013-04-10 00:00:00-04:00',
               '2013-04-11 00:00:00-04:00', '2013-04-12 00:00:00-04:00',
               '2013-04-13 00:00:00-04:00', '2013-04-14 00:00:00-04:00'],
              dtype='datetime64[ns, US/Eastern]', name='foo', length=104, freq='D')

性能改进#

  • 通过混合数据类型提高CSV写入性能,包括将日期时间最多提高5倍 (GH9940 )

  • CSV写入性能通常提高2倍 (GH9940 )

  • 改进了 pd.lib.max_len_string_array 提高5-7倍 (GH10024 )

错误修复#

  • 标签未正确显示在的图例中的错误 DataFrame.plot() ,通过 label= 自变量起作用,系列索引不再发生变化。 (GH9542 )

  • JSON序列化中的错误,导致帧长度为零时出现段错误。 (GH9805 )

  • 窃听 read_csv 其中,缺少尾部分隔符将导致段错误。 (GH5664 )

  • 在追加时保留索引名称时出错 (GH9862 )

  • 窃听 scatter_matrix 绘制意外的轴记号标签 (GH5662 )

  • 修复了中的错误 StataWriter 导致对输入的更改 DataFrame 在保存时 (GH9795 )。

  • 窃听 transform 当存在空条目并且使用快速聚合器时导致长度不匹配 (GH9697 )

  • 窃听 equals 当块顺序不同时导致假阴性 (GH9330 )

  • 分组时出现错误,包含多个 pd.Grouper 其中一个不是基于时间的 (GH10063 )

  • 窃听 read_sql_table 读取带有时区的postgres表时出错 (GH7139 )

  • 窃听 DataFrame 切片可能不保留元数据 (GH9776 )

  • Bug where TimdeltaIndex were not properly serialized in fixed HDFStore (GH9635)

  • BUG与 TimedeltaIndex 构造函数忽略 name 当给了另一个人 TimedeltaIndex 作为数据 (GH10025 )。

  • 窃听 DataFrameFormatter._get_formatted_index 不申请 max_colwidth 发送到 DataFrame 索引 (GH7856 )

  • 窃听 .loc 使用只读ndarray数据源 (GH10043 )

  • 窃听 groupby.apply() 如果传递的用户定义函数仅返回 None (适用于所有输入)。 (GH9685 )

  • 在可复制测试中始终使用临时文件 (GH9992 )

  • 连续使用打印时出现错误 secondary_y 可能无法正确显示图例。 (GH9610GH9779 )

  • 窃听 DataFrame.plot(kind="hist") 在.中的结果 TypeError 什么时候 DataFrame 包含非数字列 (GH9853 )

  • Bug where repeated plotting of DataFrame with a DatetimeIndex may raise TypeError (GH9852)

  • 窃听 setup.py 这将允许构建一个不兼容的Cython版本 (GH9827 )

  • 绘图中的错误 secondary_y 连接不正确 right_ax 属性设置为递归指定自身的辅助轴。 (GH9861 )

  • Bug in Series.quantile on empty Series of type Datetime or Timedelta (GH9675)

  • 窃听 where 在需要向上转换时导致错误的结果 (GH9731 )

  • 窃听 FloatArrayFormatter 其中,对于给定的显示,以十进制格式显示“小”浮点数的判定边界偏离一个数量级。精度 (GH9764 )

  • 修复了以下错误 DataFrame.plot() 在同时发生以下情况时引发错误 colorstyle 传递了关键字,并且样式字符串中没有颜色符号 (GH9671 )

  • Not showing a DeprecationWarning on combining list-likes with an Index (GH10083)

  • 窃听 read_csvread_table 在使用时 skip_rows 如果存在空行,则使用。 (GH9832 )

  • Bug in read_csv() interprets index_col=True as 1 (GH9798)

  • 使用索引相等性比较时出现错误 == 索引/多索引类型不兼容失败 (GH9785 )

  • 其中的BUG SparseDataFrame 不能接受 nan 作为列名 (GH8822 )

  • 窃听 to_msgpackread_msgpack 支持zlib和blosc压缩 (GH9783 )

  • Bug GroupBy.size doesn't attach index name properly if grouped by TimeGrouper (GH9925)

  • 在切片分配中导致异常的错误,原因是 length_of_indexer 返回错误的结果 (GH9995 )

  • CSV解析器中存在错误,导致跳过以空格开头加上一个非空格字符的行。 (GH9710 )

  • C CSV解析器中存在错误,当数据以换行符开头后跟空格时,会导致虚假的NAN。 (GH10022 )

  • Bug causing elements with a null group to spill into the final group when grouping by a Categorical (GH9603)

  • 在空数据帧上.iloc和.loc行为不一致的错误 (GH9964 )

  • Bug in invalid attribute access on a TimedeltaIndex incorrectly raised ValueError instead of AttributeError (GH9680)

  • 分类数据和标量之间的不相等比较中的错误,不在类别中(例如 Series(Categorical(list("abc"), ordered=True)) > "d" 。这是退回的 False 用于所有元素,但现在引发 TypeError 。平等比较现在也返回 False==True!= 。 (GH9848 )

  • DataFrame中的错误 __setitem__ 当右边是一本词典时 (GH9874 )

  • 窃听 where 当dtype为 datetime64/timedelta64 ,但其他的数据类型不是 (GH9804 )

  • 窃听 MultiIndex.sortlevel() 导致Unicode级别名称中断 (GH9856 )

  • 其中的BUG groupby.transform 不正确地强制输出数据类型以匹配输入数据类型。 (GH9807 )

  • 窃听 DataFrame 构造函数时 columns 参数已设置,并且 data 是一个空列表 (GH9939 )

  • 条形图中的错误 log=True 加薪 TypeError 如果所有值都小于1 (GH9905 )

  • Bug in horizontal bar plot ignores log=True (GH9905)

  • 使用索引未返回正确结果的PyTables查询中的错误 (GH8265GH9676 )

  • 在分割包含以下类型的值的数据帧时出错 Decimal 被另一个人 Decimal 会提高。 (GH9787 )

  • 使用DataFrames asfreq会删除索引名称的错误。 (GH9885 )

  • 重新采样BM/BQ时导致额外索引点的错误 (GH9756 )

  • 在中更改了缓存 AbstractHolidayCalendar 在实例级别而不是在类级别,因为后者可能会导致意外行为。 (GH9552 )

  • 修复了多索引数据帧的LaTeX输出 (GH9778 )

  • Bug causing an exception when setting an empty range using DataFrame.loc (GH9596)

  • 向现有轴网添加新地块时,隐藏带有子图和共享轴的记号标签时出现错误 (GH9158 )

  • 窃听 transformfilter 在对分类变量进行分组时 (GH9921 )

  • 窃听 transform 当组的数量和数据类型与输入索引相同时 (GH9700 )

  • Google BigQuery连接器现在基于每个方法导入依赖项。 (GH9713 )

  • Updated BigQuery connector to no longer use deprecated oauth2client.tools.run() (GH8327)

  • 子类化中的错误 DataFrame 。在对其进行切片或子设置时,它可能不会返回正确的类。 (GH9632 )

  • 窃听 .median() 其中未正确处理非浮点型空值 (GH10040 )

  • Series.fulna()中的错误,如果给出了一个数字可转换的字符串,则会引发该错误 (GH10092 )

贡献者#

共有58人为此次发布贡献了补丁。名字中带有“+”的人第一次贡献了一个补丁。

  • Alfonso MHC +

  • Andy Hayden

  • Artemy Kolchinsky

  • Chris Gilmer +

  • Chris Grinolds +

  • Dan Birken

  • David BROCHART +

  • David Hirschfeld +

  • David Stephens

  • Dr. Leo +

  • Evan Wright +

  • Frans van Dunné +

  • Hatem Nassrat +

  • Henning Sperr +

  • Hugo Herter +

  • Jan Schulz

  • Jeff Blackburne +

  • Jeff Reback

  • Jim Crist +

  • Jonas Abernot +

  • Joris Van den Bossche

  • Kerby Shedden

  • Leo Razoumov +

  • Manuel Riel +

  • Mortada Mehyar

  • Nick Burns +

  • Nick Eubank +

  • Olivier Grisel

  • Phillip Cloud

  • Pietro Battiston

  • Roy Hyunjin Han

  • Sam Zhang +

  • Scott Sanderson +

  • Sinhrks +

  • Stephan Hoyer

  • Tiago Antao

  • Tom Ajamian +

  • Tom Augspurger

  • Tomaz Berisa +

  • Vikram Shirgur +

  • Vladimir Filimonov

  • William Hogman +

  • Yasin A +

  • Younggun Kim +

  • behzad nouri

  • dsm054

  • floydsoft +

  • flying-sheep +

  • gfr +

  • jnmclarty

  • jreback

  • ksanghai +

  • lucas +

  • mschmohl +

  • ptype +

  • rockg

  • scls19fr +

  • sinhrks