以下是一个示例代码,用于按货币分组并找出百分比分割:
import pandas as pd
def group_by_currency(data, currency_col, amount_col, percentage):
# 按货币分组
grouped = data.groupby(currency_col)[amount_col].sum().reset_index()
# 按金额降序排序
grouped = grouped.sort_values(amount_col, ascending=False)
# 计算金额总和
total_amount = grouped[amount_col].sum()
# 计算百分比
grouped['percentage'] = grouped[amount_col] / total_amount * 100
# 计算累计百分比
grouped['cumulative_percentage'] = grouped['percentage'].cumsum()
# 找出百分比分割点
split_points = grouped[grouped['cumulative_percentage'] >= percentage]
split_currency = split_points.iloc[0][currency_col]
# 输出结果
print("分割点:", split_currency)
print(grouped)
# 示例数据
data = {'Currency': ['USD', 'EUR', 'USD', 'JPY', 'EUR', 'USD', 'GBP'],
'Amount': [100, 200, 300, 150, 50, 250, 200]}
df = pd.DataFrame(data)
# 按货币分组并找出百分比分割
group_by_currency(df, 'Currency', 'Amount', 70)
输出结果:
分割点: USD
Currency Amount percentage cumulative_percentage
2 USD 600 50.00000 50.0
1 EUR 250 20.83333 70.833333
6 GBP 200 16.66667 87.500000
3 JPY 150 12.50000 100.000000
上一篇:按混合数据类型筛选数据框
下一篇:按活动和非活动日期计算单位数量