1.2.0中的新特性(2020年12月26日)#

这些是Pandas1.2.0中的变化。看见 发行说明 获取完整的更改日志,包括其他版本的Pandas。

警告

这个 xlwt 旧式写作包 .xls 不再维护Excel文件。这个 xlrd 套餐现在只供阅读老式的 .xls 文件。

以前,默认参数 engine=Noneread_excel() 将导致使用 xlrd 引擎在许多情况下,包括新的Excel 2007+ (.xlsx )文件。如果 openpyxl 的情况下,其中许多情况现在将默认使用 openpyxl 引擎。请参阅 read_excel() 文档以了解更多详细信息。

因此,强烈建议您安装 openpyxl 阅读Excel 2007+ (.xlsx )文件。 Please do not report issues when using ``xlrd`` to read ``.xlsx`` files. 这不再受支持,请切换到使用 openpyxl 取而代之的是。

尝试使用 xlwt 引擎将引发一个 FutureWarning 除非该选项 io.excel.xls.writer 设置为 "xlwt" 。虽然此选项现在已弃用,并且还将引发 FutureWarning ,它可以全局设置并抑制警告。建议用户写下 .xlsx 文件使用 openpyxl 换成了发动机。

增强#

可以选择不允许重复标注#

SeriesDataFrame 现在可以使用以下命令创建 allows_duplicate_labels=False 用于控制索引或列是否可以包含重复标签的标志 (GH28394 )。这可用于防止意外引入可能影响下游操作的重复标签。

默认情况下,继续允许重复。

In [1]: pd.Series([1, 2], index=['a', 'a'])
Out[1]:
a    1
a    2
Length: 2, dtype: int64

In [2]: pd.Series([1, 2], index=['a', 'a']).set_flags(allows_duplicate_labels=False)
...
DuplicateLabelError: Index has duplicates.
      positions
label
a        [0, 1]

大Pandas将会繁殖 allows_duplicate_labels 属性通过许多操作。

In [3]: a = (
   ...:     pd.Series([1, 2], index=['a', 'b'])
   ...:       .set_flags(allows_duplicate_labels=False)
   ...: )

In [4]: a
Out[4]:
a    1
b    2
Length: 2, dtype: int64

# An operation introducing duplicates
In [5]: a.reindex(['a', 'b', 'a'])
...
DuplicateLabelError: Index has duplicates.
      positions
label
a        [0, 2]

[1 rows x 1 columns]

警告

这是一个实验性的功能。目前,许多方法都无法传播 allows_duplicate_labels 价值。在未来的版本中,预计每个接受或返回一个或多个DataFrame或Series对象的方法都将传播 allows_duplicate_labels

看见 重复标签 想要更多。

这个 allows_duplicate_labels 标志存储在新的 DataFrame.flags 属性。这存储了应用于 Pandas物件 。这不同于 DataFrame.attrs ,它存储应用于数据集的信息。

将参数传递给fsspec后端#

许多读/写函数都获得了 storage_options 可选参数,用于将参数字典传递给存储后端。例如,这允许将凭据传递到S3和GCS存储。有关可以将哪些参数传递给哪些后端的详细信息,可在各个存储后端的文档中找到(详见fsspec文档 builtin implementations 并链接到 external ones )。请参阅章节 读/写远程文件

GH35655 添加了对fsspec的支持(包括 storage_options )用于读取EXCEL文件。

支持中的二进制文件句柄 to_csv#

to_csv() supports file handles in binary mode (GH19827 and GH35058) with encoding (GH13068 and GH23854) and compression (GH22555). If pandas does not automatically detect whether the file handle is opened in binary or text mode, it is necessary to provide mode="wb".

例如:

In [1]: import io

In [2]: data = pd.DataFrame([0, 1, 2])

In [3]: buffer = io.BytesIO()

In [4]: data.to_csv(buffer, encoding="utf-8", compression="gzip")

支持中的短标题和表格位置 to_latex#

DataFrame.to_latex() 现在允许用户指定浮动工作台位置 (GH35281 )和简短的说明文字 (GH36267 )。

关键字 position 已添加以设置位置。

In [5]: data = pd.DataFrame({'a': [1, 2], 'b': [3, 4]})

In [6]: table = data.to_latex(position='ht')

In [7]: print(table)
\begin{table}[ht]
\centering
\begin{tabular}{lrr}
\toprule
{} &  a &  b \\
\midrule
0 &  1 &  3 \\
1 &  2 &  4 \\
\bottomrule
\end{tabular}
\end{table}

关键字的用法 caption 已被延长。除了接受单个字符串作为参数外,还可以选择提供元组 (full_caption, short_caption) 若要添加简短字幕宏,请执行以下操作。

In [8]: data = pd.DataFrame({'a': [1, 2], 'b': [3, 4]})

In [9]: table = data.to_latex(caption=('the full long caption', 'short caption'))

In [10]: print(table)
\begin{table}
\centering
\caption[short caption]{the full long caption}
\begin{tabular}{lrr}
\toprule
{} &  a &  b \\
\midrule
0 &  1 &  3 \\
1 &  2 &  4 \\
\bottomrule
\end{tabular}
\end{table}

更改的默认浮点精度 read_csvread_table#

对于C解析引擎,方法 read_csv()read_table() 以前默认为解析器,该解析器可能会相对于精度的最后一位略微错误地读取浮点数。该选项 floating_precision="high" 始终可以避免此问题。从这个版本开始,现在的默认设置是使用更准确的解析器 floating_precision=None 对应于高精度解析器,以及新的选项 floating_precision="legacy" 使用传统解析器。默认情况下,更改为使用更高精度的解析器应该不会对性能产生影响。 (GH17154 )

浮点数据的实验性可空数据类型#

我们已经添加了 Float32Dtype / Float64DtypeFloatingArray 。这些是专用于浮点数据的扩展数据类型,可以保存 pd.NA 缺少值指示器 (GH32265GH34307 )。

而默认的浮点型数据类型已经支持使用 np.nan ,这些新数据类型使用 pd.NA (及其对应的行为)作为缺失值指示符,与现有的可为空的 integerboolean 数据类型。

一个例子是, np.nanpd.NA 不同的是比较运算:

# the default NumPy float64 dtype
In [11]: s1 = pd.Series([1.5, None])

In [12]: s1
Out[12]: 
0    1.5
1    NaN
Length: 2, dtype: float64

In [13]: s1 > 1
Out[13]: 
0     True
1    False
Length: 2, dtype: bool
# the new nullable float64 dtype
In [14]: s2 = pd.Series([1.5, None], dtype="Float64")

In [15]: s2
Out[15]: 
0     1.5
1    <NA>
Length: 2, dtype: Float64

In [16]: s2 > 1
Out[16]: 
0    True
1    <NA>
Length: 2, dtype: boolean

请参阅 实验性的 NA 标量表示缺少的值 文档部分,了解有关使用 pd.NA 缺少值指示符。

如上所述,可以使用“Float64”或“Float32”字符串指定数据类型(大写以区别于默认的“Float64”数据类型)。或者,您也可以使用dtype对象:

In [17]: pd.Series([1.5, None], dtype=pd.Float32Dtype())
Out[17]: 
0     1.5
1    <NA>
Length: 2, dtype: Float32

对于提供浮点结果的现有整型或布尔型可为空数据类型的操作,现在也将使用可为空的浮点数据类型 (GH38178 )。

警告

试验性:新的浮点数据类型目前处于试验性阶段,它们的行为或API仍可能在没有警告的情况下发生变化。尤其是有关NAN的行为(与NA缺失值不同)可能会发生变化。

聚合时保留索引/列名#

使用以下选项聚合时 concat() 或者 DataFrame 构造函数后,Pandas现在将尽可能地尝试保留索引和列名 (GH35847 )。在所有输入共享公共名称的情况下,该名称将被分配给结果。当输入的名称不都一致时,结果将是未命名的。以下是保留索引名称的示例:

In [18]: idx = pd.Index(range(5), name='abc')

In [19]: ser = pd.Series(range(5, 10), index=idx)

In [20]: pd.concat({'x': ser[1:], 'y': ser[:-1]}, axis=1)
Out[20]: 
       x    y
abc          
1    6.0  6.0
2    7.0  7.0
3    8.0  8.0
4    9.0  NaN
0    NaN  5.0

[5 rows x 2 columns]

同样的道理也适用于 MultiIndex ,但逻辑是在逐级的基础上单独应用的。

GroupBy直接支持EWM运营#

DataFrameGroupBy 现在直接支持指数加权窗口操作 (GH16037 )。

In [21]: df = pd.DataFrame({'A': ['a', 'b', 'a', 'b'], 'B': range(4)})

In [22]: df
Out[22]: 
   A  B
0  a  0
1  b  1
2  a  2
3  b  3

[4 rows x 2 columns]

In [23]: df.groupby('A').ewm(com=1.0).mean()
Out[23]: 
            B
A            
a 0  0.000000
  2  1.333333
b 1  1.000000
  3  2.333333

[4 rows x 1 columns]

另外 mean supports execution via Numba 使用 engineengine_kwargs 争论。Numba必须作为可选依赖项安装才能使用此功能。

其他增强功能#

值得注意的错误修复#

这些错误修复可能会带来显著的行为变化。

DataFrame约简的一致性#

DataFrame.any()DataFrame.all() 使用 bool_only=True 现在确定是否逐列排除对象数据类型列,而不是检查 all 对象数据类型列可以被视为布尔型。

这可以防止在列的子集上应用缩减可能导致更大的Series结果的病理行为。看见 (GH37799 )。

In [24]: df = pd.DataFrame({"A": ["foo", "bar"], "B": [True, False]}, dtype=object)

In [25]: df["C"] = pd.Series([True, True])

以前的行为

In [5]: df.all(bool_only=True)
Out[5]:
C    True
dtype: bool

In [6]: df[["B", "C"]].all(bool_only=True)
Out[6]:
B    False
C    True
dtype: bool

新行为

In [26]: In [5]: df.all(bool_only=True)
Out[26]: 
B    False
C     True
Length: 2, dtype: bool

In [27]: In [6]: df[["B", "C"]].all(bool_only=True)
Out[27]: 
B    False
C     True
Length: 2, dtype: bool

其他DataFrame缩减使用 numeric_only=None 也会避免这种病态的行为 (GH37827 ):

In [28]: df = pd.DataFrame({"A": [0, 1, 2], "B": ["a", "b", "c"]}, dtype=object)

以前的行为

In [3]: df.mean()
Out[3]: Series([], dtype: float64)

In [4]: df[["A"]].mean()
Out[4]:
A    1.0
dtype: float64

新行为

In [29]: df.mean()
Out[29]: 
A    1.0
Length: 1, dtype: float64

In [30]: df[["A"]].mean()
Out[30]: 
A    1.0
Length: 1, dtype: float64

此外,DataFrame减少了 numeric_only=None 现在将与它们的系列同行保持一致。特别是,对于级数方法引发的折减 TypeError ,DataFrame缩减现在将该列视为非数字,而不是强制转换为可能具有不同语义的NumPy数组 (GH36076GH28949GH21020 )。

In [31]: ser = pd.Series([0, 1], dtype="category", name="A")

In [32]: df = ser.to_frame()

以前的行为

In [5]: df.any()
Out[5]:
A    True
dtype: bool

新行为

In [33]: df.any()
Out[33]: Series([], Length: 0, dtype: bool)

提高了Python的最低版本#

Pandas 1.2.0支持Python3.7.1及更高版本 (GH35214 )。

提高了依赖项的最低版本#

更新了一些受支持的依赖项最低版本 (GH35214 )。如果已安装,我们现在需要:

套餐

最低版本

必填项

变化

钱币

1.16.5

X

X

皮兹

2017.3

X

X

Python-Dateutil

2.7.3

X

瓶颈

1.2.1

数字快递

2.6.8

X

最热(Dev)

5.0.1

X

Mypy(开发人员)

0.782

X

optional libraries 一般建议使用最新版本。下表列出了目前在整个Pandas发育过程中正在测试的每个库的最低版本。低于最低测试版本的可选库仍可运行,但不被视为受支持。

套餐

最低版本

变化

美味可口的汤

4.6.0

实木地板

0.3.2

FsSpec

0.7.4

Gcsf

0.6.0

Lxml

4.3.0

X

Matplotlib

2.2.3

X

Numba

0.46.0

OpenPyxl

2.6.0

X

绿箭侠

0.15.0

X

Pymysql

0.7.11

X

易燃物

3.5.1

X

S3FS

0.4.0

斯比

1.2.0

SQLALCHIZY

1.2.8

X

XARRAY

0.12.3

X

Xlrd

1.2.0

X

Xlsx写入器

1.0.2

X

超大重量

1.3.0

X

Pandas-Gbq

0.12.0

看见 依赖项可选依赖项 想要更多。

其他API更改#

  • 现在,按降序排序对于 Series.sort_values()Index.sort_values() 对于DateTime-Like Index 子类。这将影响在多列上对DataFrame进行排序、使用可生成重复项的键函数进行排序或在使用 Index.sort_values() 。使用时 Series.value_counts() ,则缺失值的计数不再一定在重复计数列表中最后。相反,它的位置与原始系列中的位置相对应。使用时 Index.sort_values() 对于DateTime-Like Index 子类,NAT忽略 na_position 论据,并从头开始排序。现在他们尊重 na_position ,默认为 last ,与其他相同 Index 子类 (GH35992 )

  • Passing an invalid fill_value to Categorical.take(), DatetimeArray.take(), TimedeltaArray.take(), or PeriodArray.take() now raises a TypeError instead of a ValueError (GH37733)

  • Passing an invalid fill_value to Series.shift() with a CategoricalDtype now raises a TypeError instead of a ValueError (GH37733)

  • Passing an invalid value to IntervalIndex.insert() or CategoricalIndex.insert() now raises a TypeError instead of a ValueError (GH37733)

  • Attempting to reindex a Series with a CategoricalIndex with an invalid fill_value now raises a TypeError instead of a ValueError (GH37733)

  • CategoricalIndex.append() with an index that contains non-category values will now cast instead of raising TypeError (GH38098)

不推荐使用#

Calling NumPy ufuncs on non-aligned DataFrames

调用非对齐DataFrames上的NumPy uuncs改变了Pandas 1.2.0中的行为(在调用ufunc之前对齐输入),但在Pandas 1.2.1中恢复了这种更改。现在不建议使用不对齐的行为,请参阅 the 1.2.1 release notes 了解更多详细信息。

性能改进#

  • 使用dtype创建DataFrame或Series时的性能改进 strStringDtype 具有多个字符串元素的From数组 (GH36304GH36317GH36325GH36432GH37371 )

  • 性能提升 GroupBy.agg() 使用 numba 发动机 (GH35759 )

  • 创建时的性能改进 Series.map() 从一本巨大的词典中 (GH34717 )

  • 性能提升 GroupBy.transform() 使用 numba 发动机 (GH36240 )

  • Styler UUID方法经更改以压缩Web上的数据传输,同时保持合理较低的表冲突概率 (GH36345 )

  • 性能提升 to_datetime() 使用非ns时间单位 float dtype 列 (GH20445 )

  • Performance improvement in setting values on an IntervalArray (GH36310)

  • 内部指标法 _shallow_copy() 现在使新索引和原始索引共享缓存的属性,避免了在任何一个上创建时再次创建这些属性。这可以加快依赖于创建现有索引副本的操作 (GH36840 )

  • Performance improvement in RollingGroupby.count() (GH35625)

  • 小型性能下降到 Rolling.min()Rolling.max() 适用于固定窗 (GH36567 )

  • 降低峰值内存使用量 DataFrame.to_pickle() 在使用时 protocol=5 在Python3.8+中 (GH34244 )

  • Faster dir calls when the object has many index labels, e.g. dir(ser) (GH37450)

  • Performance improvement in ExpandingGroupby (GH37064)

  • Performance improvement in Series.astype() and DataFrame.astype() for Categorical (GH8628)

  • Performance improvement in DataFrame.groupby() for float dtype (GH28303), changes of the underlying hash-function can lead to changes in float based indexes sort ordering for ties (e.g. Index.value_counts())

  • 性能提升 pd.isin() 对于元素超过1e6的输入 (GH36611 )

  • 性能提升 DataFrame.__setitem__() 使用类似列表的索引器 (GH37954 )

  • read_json() 现在避免在指定块大小时将整个文件读入内存 (GH34548 )

错误修复#

直截了当的#

  • Categorical.fillna() 将始终返回副本,验证传递的填充值,而不管是否有任何NAS要填充,并且不允许 NaT 作为数字类别的填充值 (GH36530 )

  • 窃听 Categorical.__setitem__() 尝试设置元组值时错误引发的 (GH20439 )

  • Bug in CategoricalIndex.equals() incorrectly casting non-category entries to np.nan (GH37667)

  • Bug in CategoricalIndex.where() incorrectly setting non-category entries to np.nan instead of raising TypeError (GH37977)

  • 窃听 Categorical.to_numpy()np.array(categorical) 具有TZ感知功能 datetime64 类别错误地删除了时区信息,而不是转换为对象dtype (GH38136 )

类似DateTime#

  • Bug in DataFrame.combine_first() that would convert datetime-like column on other DataFrame to integer when the column is not present in original DataFrame (GH28481)

  • 窃听 DatetimeArray.date 其中一个 ValueError 将使用只读后备数组引发 (GH33530 )

  • 窃听 NaT 未能提出的比较 TypeError 关于无效的不平等比较 (GH35046 )

  • 窃听 DateOffset 当输入值超出正常范围(例如,月=12)时,从PICLE文件重构的属性不同于原始对象 (GH34511 )

  • Bug in DatetimeIndex.get_slice_bound() where datetime.date objects were not accepted or naive Timestamp with a tz-aware DatetimeIndex (GH35690)

  • 窃听 DatetimeIndex.slice_locs() 哪里 datetime.date 对象未被接受 (GH34077 )

  • 窃听 DatetimeIndex.searchsorted()TimedeltaIndex.searchsorted()PeriodIndex.searchsorted() ,以及 Series.searchsorted() 使用 datetime64timedelta64Period 数据类型放置 NaT 值与NumPy不一致 (GH36176GH36254 )

  • 中的不一致 DatetimeArrayTimedeltaArray ,以及 PeriodArray 方法 __setitem__ 将字符串数组转换为类似DateTime的标量,而不是标量字符串 (GH36261 )

  • 窃听 DatetimeArray.take() 错误地允许 fill_value 时区不匹配 (GH37356 )

  • 窃听 DatetimeIndex.shift 移位空索引时引发错误 (GH14811 )

  • TimestampDatetimeIndex Tz感知对象和Tz-naive对象之间的比较现在遵循标准库 datetime behavior, returning True/False!=/== 和不平等比较的提高 (GH28507 )

  • 窃听 DatetimeIndex.equals()TimedeltaIndex.equals() 错误地考虑 int64 索引相等 (GH36744 )

  • Series.to_json(), DataFrame.to_json(), and read_json() now implement time zone parsing when orient structure is table (GH35973)

  • astype() 现在尝试转换为 datetime64[ns, tz] 直接从 object 使用从字符串推断的时区 (GH35973 )

  • Bug in TimedeltaIndex.sum() and Series.sum() with timedelta64 dtype on an empty index or series returning NaT instead of Timedelta(0) (GH31751)

  • 窃听 DatetimeArray.shift() 错误地允许 fill_value 时区不匹配 (GH37299 )

  • 添加一个错误 BusinessDay 使用非零值 offset 设置为非标量其他 (GH37457 )

  • 窃听 to_datetime() 使用只读数组错误地引发 (GH34857 )

  • 窃听 Series.isin() 使用 datetime64[ns] 数据类型和 DatetimeIndex.isin() 将整数错误地转换为日期时间 (GH36621 )

  • 窃听 Series.isin() 使用 datetime64[ns] 数据类型和 DatetimeIndex.isin() 没有考虑到Tz感知和Tz天真的约会时间总是不同的 (GH35728 )

  • 窃听 Series.isin() 使用 PeriodDtype 数据类型和 PeriodIndex.isin() 未能考虑不同观点的论点 PeriodDtype 一如既往的与众不同 (GH37528 )

  • 窃听 Period 构造函数现在可以正确处理 value 论据 (GH34621GH17053 )

Timedelta#

时区#

数字#

转换#

字符串#

间隔#

标引#

丢失#

MultiIndex#

I/O#

期间#

标绘#

造型师#

  • 窃听 Styler.render() 由于中的格式错误,生成的HTML不正确 rowspan 属性,则它现在与w3语法匹配 (GH38234 )

分组/重采样/滚动#

重塑#

ExtensionArray#

其他#

贡献者#

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

  • 21CSM +

  • AbdulMAbdi +

  • Abhiraj Hinge +

  • Abhishek Mangla +

  • Abo7atm +

  • Adam Spannbauer +

  • Albert Villanova del Moral

  • Alex Kirko

  • Alex Lim +

  • Alex Thorne +

  • Aleš Erjavec +

  • Ali McMaster

  • Amanda Dsouza +

  • Amim Knabben +

  • Andrew Wieteska

  • Anshoo Rajput +

  • Anthony Milbourne

  • Arun12121 +

  • Asish Mahapatra

  • Avinash Pancham +

  • BeanNan +

  • Ben Forbes +

  • Brendan Wilby +

  • Bruno Almeida +

  • Byron Boulton +

  • Chankey Pathak

  • Chris Barnes +

  • Chris Lynch +

  • Chris Withers

  • Christoph Deil +

  • Christopher Hadley +

  • Chuanzhu Xu

  • Coelhudo +

  • Dan Moore

  • Daniel Saxton

  • David Kwong +

  • David Li +

  • David Mrva +

  • Deepak Pandey +

  • Deepyaman Datta

  • Devin Petersohn

  • Dmitriy Perepelkin +

  • Douglas Hanley +

  • Dāgs Grīnbergs +

  • Eli Treuherz +

  • Elliot Rampono +

  • Erfan Nariman

  • Eric Goddard

  • Eric Leung +

  • Eric Wieser

  • Ethan Chen +

  • Eve +

  • Eyal Trabelsi +

  • Fabian Gebhart +

  • Fangchen Li

  • Felix Claessen +

  • Finlay Maguire +

  • Florian Roscheck +

  • Gabriel Monteiro

  • Gautham +

  • Gerard Jorgensen +

  • Gregory Livschitz

  • Hans

  • Harsh Sharma

  • Honfung Wong +

  • Igor Gotlibovych +

  • Iqrar Agalosi Nureyza

  • Irv Lustig

  • Isaac Virshup

  • Jacob Peacock

  • Jacob Stevens-Haas +

  • Jan Müller +

  • Janus

  • Jeet Parekh

  • Jeff Hernandez +

  • Jeff Reback

  • Jiaxiang

  • Joao Pedro Berno Zanutto +

  • Joel Nothman

  • Joel Whittier +

  • John Karasinski +

  • John McGuigan +

  • Johnny Pribyl +

  • Jonas Laursen +

  • Jonathan Shreckengost +

  • Joris Van den Bossche

  • Jose +

  • JoseNavy +

  • Josh Temple +

  • Jun Kudo +

  • Justin Essert

  • Justin Sexton +

  • Kaiqi Dong

  • Kamil Trocewicz +

  • Karthik Mathur

  • Kashif +

  • Kenny Huynh

  • Kevin Sheppard

  • Kumar Shivam +

  • Leonardus Chen +

  • Levi Matus +

  • Lucas Rodés-Guirao +

  • Luis Pinto +

  • Lynch +

  • Marc Garcia

  • Marco Gorelli

  • Maria-Alexandra Ilie +

  • Marian Denes

  • Mark Graham +

  • Martin Durant

  • Matt Roeschke

  • Matthew Roeschke

  • Matthias Bussonnier

  • Maxim Ivanov +

  • Mayank Chaudhary +

  • MeeseeksMachine

  • Meghana Varanasi +

  • Metehan Kutlu +

  • Micael Jarniac +

  • Micah Smith +

  • Michael Marino

  • Miroslav Šedivý

  • Mohammad Jafar Mashhadi

  • Mohammed Kashif +

  • Nagesh Kumar C +

  • Nidhi Zare +

  • Nikhil Choudhary +

  • Number42

  • Oleh Kozynets +

  • OlivierLuG

  • Pandas Development Team

  • Paolo Lammens +

  • Paul Ganssle

  • Pax +

  • Peter Liu +

  • Philip Cerles +

  • Pranjal Bhardwaj +

  • Prayag Savsani +

  • Purushothaman Srikanth +

  • Qbiwan +

  • Rahul Chauhan +

  • Rahul Sathanapalli +

  • Rajat Bishnoi +

  • Ray Bell

  • Reshama Shaikh +

  • Richard Shadrach

  • Robert Bradshaw

  • Robert de Vries

  • Rohith295

  • S Mono +

  • S.TAKENO +

  • Sahid Velji +

  • Sam Cohen +

  • Sam Ezebunandu +

  • Sander +

  • Sarthak +

  • Sarthak Vineet Kumar +

  • Satrio H Wicaksono +

  • Scott Lasley

  • Shao Yang Hong +

  • Sharon Woo +

  • Shubham Mehra +

  • Simon Hawkins

  • Sixuan (Cherie) Wu +

  • Souris Ash +

  • Steffen Rehberg

  • Suvayu Ali

  • Sven

  • SylvainLan +

  • T. JEGHAM +

  • Terji Petersen

  • Thomas Dickson +

  • Thomas Heavey +

  • Thomas Smith

  • Tobias Pitters

  • Tom Augspurger

  • Tomasz Sakrejda +

  • Torsten Wörtwein +

  • Ty Mick +

  • UrielMaD +

  • Uwe L. Korn

  • Vikramaditya Gaonkar +

  • VirosaLi +

  • W.R +

  • Warren White +

  • Wesley Boelrijk +

  • William Ayd

  • Yanxian Lin +

  • Yassir Karroum +

  • Yong Kai Yi +

  • Yuanhao Geng +

  • Yury Mikhaylov +

  • Yutaro Ikeda

  • Yuya Takashina +

  • Zach Brookler +

  • Zak Kohler +

  • ZhihuiChen0903 +

  • abmyii

  • alexhtn +

  • asharma13524 +

  • attack68

  • beanan +

  • chinhwee

  • cleconte987

  • danchev +

  • ebardie +

  • edwardkong

  • elliot rampono +

  • estasney +

  • gabicca

  • geetha-rangaswamaiah +

  • gfyoung

  • guru kiran

  • hardikpnsp +

  • icanhazcodeplz +

  • ivanovmg +

  • jbrockmendel

  • jeschwar

  • jnecus

  • joooeey +

  • junk +

  • krajatcl +

  • lacrosse91 +

  • leo +

  • lpkirwin +

  • lrjball

  • lucasrodes +

  • ma3da +

  • mavismonica +

  • mlondschien +

  • mzeitlin11 +

  • nguevara +

  • nrebena

  • parkdj1 +

  • partev

  • patrick

  • realead

  • rxxg +

  • samilAyoub +

  • sanderland

  • shawnbrown

  • sm1899 +

  • smartvinnetou

  • ssortman +

  • steveya +

  • taytzehao +

  • tiagohonorato +

  • timhunderwood

  • tkmz-n +

  • tnwei +

  • tpanza +

  • vineethraj510 +

  • vmdhhh +

  • xinrong-databricks +

  • yonas kassa +

  • yonashub +

  • Ádám Lippai +