python - 聚合来自一个 DataFrame 的信息并将其加入另一个 DataFrame
问题描述
我有两个熊猫数据框:一个是公司之间的交易历史(他们的 ID)、交易周和交易总和。因此,“卖出”列中的每家公司都与来自不同地区的公司进行交易(“买入”列)。
另一个是规格表,包含公司 ID 和地区。我需要为 ML 模型生成特征 - 意味着从每家公司到每个地区的付款并将其加入规范数据框。
我不能只将“地区”列加入交易表,因为并非规格表中的所有公司都在“卖出”或“买入”列中。规格表中的公司要么在“卖出” ,要么在“买入”列。
我想通过'sell Id'转向groupby,但不知道下一步该做什么。
请帮忙
解决方案
这可能是您正在寻找的。
# Generate sample data
df = pd.DataFrame([['AAA','CCC',25,14],['AAA','CCC',50,18],['AAA','DDD',10,20],['AAA','DDD',20,25]])
df.columns = ['sell','buy','sum','week']
#Generate second table
spec = pd.DataFrame([['CCC',21],['DDD',22]])
spec.columns = ['companyID','region']
# Merge the two dataframes
df = df.merge(spec, left_on='buy',right_on='companyID')
# Group by whatever columns you need, and take the mean
df = df.groupby(['sell','region'])['sum'].mean().reset_index()
# Pivot your data
df.pivot(index='sell', columns='region', values='sum')
输出
region 21 22
sell
AAA 37.5 15.0
推荐阅读
- selenium-webdriver - Jmeter webdriver 采样器类未找到错误
- android-studio - 如何在 Android Studio 中通过向下滑动 webview 来重新加载?
- excel - 更新文件夹内所有 excel 文件中的链接
- containers - 如何修改 liveness 和 readiness 探针参数?
- spring-security - 如何使用spring cloud sleuth传播token
- php - get_dir_file_info 返回的日期不可读
- batch-file - Is there a base64 file encoding command that doesn't show up on screen?
- rest - 创建 REST API 以使用 Java SDK 访问 Fabric
- c - 格式“%c”需要“char *”类型的参数,但参数 2 的类型为“char (*)[0]”
- sql - 在同一数据集上按不同级别进行 SQL 分组