[英]Fetch max value column with row cells condition
我有這張桌子:
Name | value
-------+-----------
A | 1
B | 2
A | 3
B | 4
C | 5
D | 6
對於每條記錄,我想要根據這樣的名稱的最大值:
Name | value | maxvalue
-------+---------+----------
A | 1 | 3
B | 2 | 4
A | 3 | 3
B | 4 | 4
C | 5 | 5
D | 6 | 6
使用 python 最有效的方法是什么? Ì 有表格,有些記錄很少(約 100 行),有些表格記錄巨大(>10 億)
非常感謝你們!
我想有一個稍微快一點的方法,但這里有一個pandas
的例子:
import numpy as np
import pandas as pd
df = pd.DataFrame({"name": list("ABABCD"), "value": np.arange(6)})
maxes = df.groupby("name").agg("max")
df["maxvalue"] = df["name"].apply(lambda x: maxes.loc[x])
>>> df
name value maxvalue
0 A 0 2
1 B 1 3
2 A 2 2
3 B 3 3
4 C 4 4
5 D 5 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.