繁体   English   中英

根据python另一列中的公共值在数据框的一列中划分2个值

[英]Dividing 2 values in a column of dataframe based on common value in another column in python

我有一个数据框,提供了它的摘要:

Year       Result       Count
2000        lost          5
2000        won          16
2001        lost         12
2001        won          22
2002        lost         15
2002        won          15
2003        lost         12
2003        tied          1
2003        won          13
2004        lost          8
2004        won          20

我想创建一个年度明智的赢/输比率的列表。 我知道如何使用字典和循环来做到这一点。 但是什么是最好的方法。

这里有两个选择:

选项1pivot + division ,使用pivotwontielost创建单独的列,然后将won列除以lost列:

df.pivot("Year", "Result", "Count").pipe(lambda x: x.won/x.lost)

#Year
#2000    3.200000
#2001    1.833333
#2002    1.000000
#2003    1.083333
#2004    2.500000
#dtype: float64

选项2: groupby + agg ,按组数据帧Year ,每年为divide的计数值wonlost

df.Count = df.Count.astype(float)
(df.set_index('Result').groupby('Year').Count
   .agg(lambda x: x.get('won', np.nan)/x.get('lost', np.nan)))

#Year
#2000    3.200000
#2001    1.833333
#2002    1.000000
#2003    1.083333
#2004    2.500000
#Name: Count, dtype: float64

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM