gpt4 book ai didi

python - 基于在 "sub"Dataframe 上创建的 groupby 创建新的较小的 "root"DataFrameS

转载 作者:行者123 更新时间:2023-11-28 22:10:22 24 4
gpt4 key购买 nike

我有一个这样的数据集:

Index        Amount    Currency
01.01.2018 25.0 EUR
01.01.2018 43.5 GBP
01.01.2018 463.0 PLN
02.01.2018 32.0 EUR
02.01.2018 12.5 GBP
02.01.2018 123.0 PLN
03.01.2018 10.0 PLN
03.01.2018 15.0 USD

我想创建一个函数,将该数据帧拆分为按货币分组的子数据帧(存储在不同的变量中)。需要前任。一个变量(Dataframe 类型),其中仅包含欧元货币,一个代表英镑货币,一个代表 PLN 货币,一个代表美元。

所以我想要这样的输出:

对于欧元:

Index        Amount    Currency
01.01.2018 25.0 EUR
02.01.2018 32.0 EUR

对于英镑:

Index        Amount    Currency
01.01.2018 43.5 GBP
02.01.2018 12.5 GBP

PLN:

Index        Amount    Currency
01.01.2018 463.0 PLN
02.01.2018 123.0 PLN
03.01.2018 10.0 PLN

美元:

Index        Amount    Currency
03.01.2018 15.0 USD

主要问题是我正在寻找一行干净的代码来完成它。当然可以使用一些 for 和 if ,但我的目标是获得干净的代码。

附注。

是否可以在不声明货币变量的情况下做到这一点?我想避免为每种货币声明 40 个变量。因为这个例子是简化的,而且实际上 df 有大量货币,而且它们没有以任何方式排序,而且并不是每天都有所有货币。当然,这个 PS 只是对我的问题的优化,所以如果不可能也没关系。

最佳答案

您可以groupby ,从返回的key/value对构建一个tuple并构建一个字典:

dfs = dict(tuple(df.groupby('Currency')))

您可以使用 Currency 字段(现在是字典的 keys)中的不同值来访问不同的元素:

print(dfs['EUR'])

Index Amount Currency
0 01.01.2018 25.0 EUR
3 02.01.2018 32.0 EUR

print(dfs['USD'])

Index Amount Currency
7 03.01.2018 15.0 USD

关于python - 基于在 "sub"Dataframe 上创建的 groupby 创建新的较小的 "root"DataFrameS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com