繁体   English   中英

如何获得所有行的最大数量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM