我想为熊猫系列创建自定义摘要功能。
df["tmk"].min()
df["tmk"].max()
这可行。
def min_max(x):
minimum = x.min()
maximum = x.max()
print(f'Min: {minimum} | Max: {maximum}')
df["tmk"].apply(lambda x: min_max(x))
AttributeError: 'float' object has no attribute 'min'
我想我在这里做错了。谁能帮助我正确应用该功能?
如果使用Series.apply
它,则按列的每个值循环。错误意味着没有min
和max
标量。
df = pd.DataFrame({
'tmk':[4,5,4,5,5,np.nan],
})
def min_max(x):
minimum = x.min()
maximum = x.max()
print(f'Min: {minimum} | Max: {maximum}')
您需要按以下方式处理column的所有值Series.pipe
:
df["tmk"].pipe(min_max)
或通过Series使其功能类似于在评论中提到的@AkshayNevrekar:
min_max(df["tmk"])
另一个想法是使用DataFrame.apply
-[]
为一个列添加DataFrame
:
df[["tmk"]].apply(min_max)
Min: 4.0 | Max: 5.0
另一种方法是useSeries.describe
或Series.agg
:
print (df['tmk'].describe())
count 5.000000
mean 4.600000
std 0.547723
min 4.000000
25% 4.000000
50% 5.000000
75% 5.000000
max 5.000000
Name: tmk, dtype: float64
print (df['tmk'].agg(['min', 'max']))
min 4.0
max 5.0
Name: tmk, dtype: float64
也可以format
像提到的@Jon Clements一样添加,谢谢:
print ('Min: {min} | Max: {max}'.format_map(df['tmk'].agg(['min', 'max'])))
Min: 4.0 | Max: 5.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句