Spreadsheet Manipulation Tricks w / Python's Pandas

我给自己一个使用Python和pandas进行数据处理的速成课程。 我终于厌倦了使用电子表格,并想要比R更灵活的东西,所以我决定给它一个旋转。 这是一个非常漂亮的界面,我正在玩它。 然而,在研究不同的技巧时,我一直无法find基本的电子表格函数的备忘单,尤其是关于将公式添加到引用其他列的数据框中的新列的问题。

我想知道是否有人可能会给我推荐的代码来完成下面的6个标准电子表格操作,只是为了让我更好地了解它是如何工作的。 如果您希望看到全尺寸的图像渲染, 请点击这里

熊猫电子表格的例子

如果您想自己查看电子表格, 请点击此处 。

我已经有点熟悉向数据框添加列,主要是我正在努力的特定单元格的交叉引用。 基本上,我期待的答案松散地看起来像这样:

table['NewColumn']=(table['given_column']+magic-code-that-I-don't-know).astype(float-or-int-or-whatever) 

如果我能很好地使用额外的库来完成这些function,请随时提出build议。

提前谢谢了。

一般来说,您想要考虑列上的vector化操作,而不是特定单元格上的操作。

所以,举个例子,如果你有一个data列,并且你想要另一个相同的列,但是每个值乘以3,你可以用两个基本的方法来完成。 首先是“逐个细胞”操作。

 df['data_prime'] = df['data'].apply(lambda x: 3*x) 

第二个是vector化的方式:

 df['data_prime'] = df['data'] * 3 

因此,在您的电子表格中逐列:

计数 (如果您希望从1开始而不是0开始,您可以在右侧添加1):

 df['count'] = pandas.Series(range(len(df)) 

运行总数

 df['running total'] = df['data'].cumsum() 

与标量的区别 (如果需要,可以将标设置为df中的特定值):

 df['diff'] = scalar - df['data'] 

移动平均线

 df['moving average'] = df['running total'] / df['count'].astype('float') 

电子表格中的基本公式

我觉得你自己已经够了。

如果声明

 df['new column'] = 0 mask = df['data column'] >= 3 df.loc[mask, 'new column'] = 1