tiangou日记 2022-05-15 21:24 采纳率: 28.6%
浏览 33
已结题

希望取出python某列相等,另一列的最大值的那一行:

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

```python
df.columns = ['col1','col2','col3','col4','col5']#修改列名
print(df)
df_groupby_0 = df.groupby('col1', as_index=False)["col3"].max()
print(df_groupby_0)
      col1      col2      col3     col4          col5
0      chr1  23249349  23251066  REVERSE  LENGTH=237\n
1      chr1    819712    821227  FORWARD  LENGTH=385\n
2      chr1  25508737  25510697  FORWARD  LENGTH=619\n
3      chr1  27110887  27111825  FORWARD  LENGTH=256\n
4      chr1   1202815   1205664  FORWARD  LENGTH=468\n
...     ...       ...       ...      ...           ...
48231  chrc     50001     50363  REVERSE  LENGTH=120\n
48232  chrc     66929     67063  FORWARD   LENGTH=44\n
48233  chrc     60741     61430  FORWARD  LENGTH=229\n
48234  chrc     15013     15723  REVERSE  LENGTH=236\n
48235  chrc    141854    143708  FORWARD  LENGTH=389\n

[48236 rows x 5 columns]
   col1     col3
0  chr1  9994642
1  chr2  9998945
2  chr3  9999892
3  chr4  9994099
4  chr5  9992770
5  chrc    98793

这明显不是最大的那一行啊


```python

​

df_groupby_1 = df.sort_values('col3', ascending=False).groupby('col1', as_index=False).first()#ascending正序还是倒序

[点击并拖拽以移动]
​

哇,没有区别呢。

剪秋,我不懂啊?



  • 写回答

1条回答 默认 最新

  • ENGineer_zlshuo 2022-05-16 10:38
    关注

    观察了一下,col3列的数据可能是str字符型,所有首位为9的都上去了,转一个格式就可以解决了

    df['col3'] = df['col3'].astype(int)  # 加入这一句,把col3的格式从str转为int,如有需要可以astype(float)
    df_groupby_0 = df.groupby('col1', as_index=False)["col3"].max()
    print(df_groupby_0)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 已采纳回答 5月16日
  • 创建了问题 5月15日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装