Skip to content

Instantly share code, notes, and snippets.

@voglster
Last active June 28, 2022 18:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save voglster/9e40ddbf8aa2c0251c4497fe99749e1f to your computer and use it in GitHub Desktop.
Save voglster/9e40ddbf8aa2c0251c4497fe99749e1f to your computer and use it in GitHub Desktop.
Keeney apply
from pprint import pprint
from collections import defaultdict
import pandas as pd
data = [
{'item_code': "A1234", "contract_size": 1, "contract_number": 1},
{'item_code': "B1234", "contract_size": 3, "contract_number": 1},
{'item_code': "01234", "contract_size": 1, "contract_number": 2},
{'item_code': "X1234", "contract_size": 2, "contract_number": 2},
]
contract_values = {}
for row in data:
cn = row['contract_number']
if cn not in contract_values:
contract_values[cn] = 0
contract_values[cn] += row['contract_size']
def sorter(item_code: str):
code = item_code[0].upper()
if code in '1234567890':
return 'comm'
if code in 'XY':
return 'service'
return 'keeney'
def contract_size(contract: int):
return contract_values[contract]
df = pd.DataFrame(data)
df['something'] = df['item_code'].apply(sorter)
df['total_cv'] = df['contract_number'].apply(contract_size)
print(df)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment