【发布时间】:2021-11-04 08:47:41
【问题描述】:
我有两个数据名 df1 和 df2。
比较当天和id
- 如果 rank df1
- 如果排名 df1 > 排名 df2,则保留值 df1 类型“A”和 df2 类型“D”。
df1:
| id | day | rank | type |
|---|---|---|---|
| 1 | 25/01 | 22 | D |
| 1 | 25/01 | 22 | A |
| 5 | 25/01 | 66 | D |
| 5 | 25/01 | 66 | A |
| 10 | 26/01 | 55 | D |
df2:
| id | day | rank | type |
|---|---|---|---|
| 1 | 25/01 | 58 | D |
| 1 | 25/01 | 58 | A |
| 5 | 25/01 | 10 | D |
| 5 | 25/01 | 10 | A |
| 10 | 26/01 | 100 | D |
| 10 | 26/01 | 100 | A |
输出df1:
| id | day | rank | type |
|---|---|---|---|
| 1 | 25/01 | 22 | D |
| 5 | 25/01 | 66 | A |
| 10 | 26/01 | 55 | D |
输出df2:
| id | day | rank | type |
|---|---|---|---|
| 1 | 25/01 | 58 | A |
| 5 | 25/01 | 10 | D |
| 10 | 26/01 | 100 | A |
我有代码:
if df1.groupby(["id", "Date"])['Rank'] > df2.groupby(["id", "Date"])['Rank']:
df1 = df1[(df1['Type' == 'A'])]
df2 = df2[(df2['Type' == 'D'])]
else:
df1 = df1[(df1['Type' == 'D'])]
df2 = df2[(df2['Type' == 'A'])]
但它给了我以下错误:
TypeError: '>' not supported between instances of 'SeriesGroupBy' and 'SeriesGroupBy'
那么我该如何解决这个问题?
谢谢!
【问题讨论】:
-
两个数据框(df1,df2)的大小是否总是相同的?
-
不,有区别
标签: python pandas dataframe pandas-groupby