[英]How to get the maximum number of all the rows?
我有一个类似于下面的列,其中包含 arrays 和编号。
我想知道如何获得所有行的最大数量,即如果只有一个数字,那么取这个数字。
例如,我会得到第一行的0.39
和第二行的0.33
......
print(df)
| | unit_price |
|----|-------------------------------------------|
| 0 | 0.39 |
| 1 | [0.29, 0.3, 0.33] |
| 2 | [0.34, 0.35, 0.39] |
| 3 | 0.39 |
| 4 | 0.39 |
| ...| ... |
| 444| [0.41, 0.42, 0.43, 0.45, 0.46, 0.47, 0.48]|
| 445| [0.47, 0.48] |
| 446| [0.47, 0.48] |
您可以通过以下方式利用numpy.max
function 执行此任务:
import numpy as np
import pandas as pd
df = pd.DataFrame({'price':[0.39,[0.29,0.3,0.33],[0.34,0.35,0.39]]})
df['maxprice'] = df.price.apply(np.max)
print(df)
output:
price maxprice
0 0.39 0.39
1 [0.29, 0.3, 0.33] 0.33
2 [0.34, 0.35, 0.39] 0.39
检查数据的类型是否为list
,然后取max
,否则取值(即单个数字)
df['unit_price'].apply(lambda x: max(x) if isinstance(x, list) else x)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.