python - 比较两列中的值并提取数据框中第三列的值

标签 python pandas dataframe numpy

比较两列中的值并提取数据框中第三列的值

df=

<表类=“s-表”> <标题> 位置 团队 目标 <正文> 1 一个 5 1 B 6 2 一个 7 2 B 5 2 C 6 3 B 7

预期输出 df =

<表类=“s-表”> <标题> 位置 一个团队 团队目标 B队 B 队目标 C队 C 团队目标 <正文> 1 1 5 1 6 0 不适用 2 1 7 1 5 1 6 3 0 不适用 1 7 0 不适用

最佳答案

示例代码

data = {'Location': {0: 1, 1: 1, 2: 2, 3: 2, 4: 2, 5: 3},
        'teams': {0: 'A', 1: 'B', 2: 'A', 3: 'B', 4: 'C', 5: 'B'},
        'goals': {0: 5, 1: 6, 2: 7, 3: 5, 4: 6, 5: 7}}
df = pd.DataFrame(data)

第一

使用groupby进行聚合

(df.groupby(['Location', 'teams'])['goals'].agg(['count', sum])
 .unstack().swaplevel(0, 1, axis=1).sort_index(axis=1))

输出:

teams   A               B               C
        count   sum     count   sum     count   sum
Location                        
1       1.0     5.0     1.0     6.0     NaN     NaN
2       1.0     7.0     1.0     5.0     1.0     6.0
3       NaN     NaN     1.0     7.0     NaN     NaN



第二

让我们创建 idx 来更改列

idx = pd.MultiIndex.from_product([df['teams'].unique(), ['Team', 'Team Goal']]).map(lambda x: ' '.join(x))

idx

Index(['A Team', 'A Team Goal', 'B Team', 'B Team Goal', 'C Team', 'C Team Goal'], dtype='object')



最后

更改列和reset_index(包括第一个代码)

(df.groupby(['Location', 'teams'])['goals'].agg(['count', sum])
 .unstack().swaplevel(0, 1, axis=1).sort_index(axis=1)
 .set_axis(idx, axis=1).reset_index())

输出

    Location    A Team  A Team Goal B Team  B Team Goal C Team  C Team Goal
0   1           1.0     5.0         1.0     6.0         NaN     NaN
1   2           1.0     7.0         1.0     5.0         1.0     6.0
2   3           NaN     NaN         1.0     7.0         NaN     NaN

关于python - 比较两列中的值并提取数据框中第三列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74750053/

相关文章:

python - 为什么 matplotlib 在 VSCode 上不起作用

python - 使用 dataframe.query 从 pd.DataFrame 中包含的列表中选择值

python - 如何根据反转的字典值修改 Pandas DataFrame?

python - 提取列名并在 Pandas 中对它们进行排序

python - 如何用字典创建华夫饼图?

java - python 和 java 应用程序可以使用哪些数据交换格式相互通信?

csv - 如何减少在 Julia 中打开大型 csv 文件所需的时间(使用 CSV 和 DataFrames)?

python - 如何在 python 中流入和操作大数据文件

python - 比较 df 中的上一个\下一个值并根据条件进行修正

python - for 循环不迭代文件