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