如何在不创建临时列的情况下从 pandas 数据框列计算最小值?
How do you compute minimum from pandas data frame columns, without creating temporary column?
假设,我有一个 pandas 数据框 df
,其中包含列 A
、B
和 C
。我想从列上的算术运算符计算行最小值,特别是 df['D']=min(df['A']+dF['B']*3, df['C']*np.sqrt(12))
。我看过相关问题,似乎我需要先为 min
函数中的参数创建两列,然后它们执行 min
of axis =1
。我想知道是否有另一种方法,而不创建临时列。
无需创建新列,您可以使用 apply
:
df['D'] = df.apply(lambda x: min(x['A'] + x['B']*3, x['C']*np.sqrt(12), axis=1)
但最好只做:
df['D'] = np.mininum(df['A']+dF['B']*3, df['C']*np.sqrt(12))
这会创建两个中间体 columns/series,但由于矢量化,速度要快得多。
假设,我有一个 pandas 数据框 df
,其中包含列 A
、B
和 C
。我想从列上的算术运算符计算行最小值,特别是 df['D']=min(df['A']+dF['B']*3, df['C']*np.sqrt(12))
。我看过相关问题,似乎我需要先为 min
函数中的参数创建两列,然后它们执行 min
of axis =1
。我想知道是否有另一种方法,而不创建临时列。
无需创建新列,您可以使用 apply
:
df['D'] = df.apply(lambda x: min(x['A'] + x['B']*3, x['C']*np.sqrt(12), axis=1)
但最好只做:
df['D'] = np.mininum(df['A']+dF['B']*3, df['C']*np.sqrt(12))
这会创建两个中间体 columns/series,但由于矢量化,速度要快得多。