numpy,其中功能相当于熊猫

时间:2020-01-08 14:12:56

标签: python pandas numpy dask

我要根据系列中的某些条件添加新列。

我有一个numpy.where语句,如下所示:

df['New_Col']= np.where(df['Name']=='John', df['Class'], 'Unknown')

但是它花费大量时间在大数据上,所以我试图使用pd.Series.apply函数来完成相同的工作:

df['New_Col'] = df['Name'].apply(lambda name: df['Class'] if name == 'John' else 'Unknown')

但是只要条件满足,它就会分配整个序列,但是理想情况下我只希望为该迭代分配等效的行

请告知是否有人在同一输入上输入内容,或者更正我,以更有效的方式替换np.where。

谢谢。

1 个答案:

答案 0 :(得分:1)

Dask解决方案:

您实际上不需要使用where函数:

df['New_Col'] = df['Class'][df['Name']=='John']

然后用所需的值填充NaN值:

df['New_Col'] = df['New_Col'].fillna('Unknown')