基于PythonPandas中DataFrame中的特征计算?
Calculation based on feature in DataFrame in Python Pandas?
我有如下所示的 DataFrame:
df = pd.DataFrame({"ID" : ["1", "2", "2", "1", "3"],
"currency" : ["GBP", "GBP", "GBP", "CHF", "EUR"],
"amount" : [100, 200, 300, 400, 500]})
我需要计算:
- New1 = 英镑货币的协议数量
- New2 = 与英镑货币的协议金额
我需要如下结果:
然后我们可以过滤 groupby
和 reindex
out = df.loc[df.currency=='GBP'].groupby(['ID']).amount.agg(['count','sum']).reindex(df.ID.unique())
Out[210]:
count sum
ID
1 1.0 100.0
2 2.0 500.0
3 NaN NaN
你可以试试这个-
import pandas as pd
df = pd.DataFrame({"ID" : ["1", "2", "2", "1", "3"],
"currency" : ["GBP", "GBP", "GBP", "CHF", "EUR"],
"amount" : [100, 200, 300, 400, 500]})
>>> pd.pivot_table(df.loc[df.currency=='GBP'],index=["ID"],aggfunc={'currency':'count','amount':'sum'}).reindex(df.ID.unique()).reset_index()
ID amount currency
1 100.0 1.0
2 500.0 2.0
3 NaN NaN
我有如下所示的 DataFrame:
df = pd.DataFrame({"ID" : ["1", "2", "2", "1", "3"],
"currency" : ["GBP", "GBP", "GBP", "CHF", "EUR"],
"amount" : [100, 200, 300, 400, 500]})
我需要计算:
- New1 = 英镑货币的协议数量
- New2 = 与英镑货币的协议金额
我需要如下结果:
然后我们可以过滤 groupby
和 reindex
out = df.loc[df.currency=='GBP'].groupby(['ID']).amount.agg(['count','sum']).reindex(df.ID.unique())
Out[210]:
count sum
ID
1 1.0 100.0
2 2.0 500.0
3 NaN NaN
你可以试试这个-
import pandas as pd
df = pd.DataFrame({"ID" : ["1", "2", "2", "1", "3"],
"currency" : ["GBP", "GBP", "GBP", "CHF", "EUR"],
"amount" : [100, 200, 300, 400, 500]})
>>> pd.pivot_table(df.loc[df.currency=='GBP'],index=["ID"],aggfunc={'currency':'count','amount':'sum'}).reindex(df.ID.unique()).reset_index()
ID amount currency
1 100.0 1.0
2 500.0 2.0
3 NaN NaN