云云豆酱 2022-11-09 19:54 采纳率: 75%
浏览 111
已结题

报错:TypeError: invalid type comparison,百度试了几个方法还是不行,请问这怎么解决。

要求:使用loc,和 iloc,实现条件切片读取数据源“meal_order_detail.xlsx"或"meal_order_detaill.aql",使用条件表达式,返回某一特定条件下的所有值。


import pandas as pd

detail = pd.read_excel('D:/AAA学习/数据分析/2022.11.9/meal_order_detail.xlsx')
order_id = detail['order_id']
dishes_name = detail.dishes_name
dishes_name1 = detail.loc[:, 'dishes_name']
dishes_name2 = detail.iloc[:, 3]
orderDish1 = detail.loc[:, ['order_id', 'dishes_name']]
orderDish2 = detail.iloc[:, [1, 3]]
# loc内部传入表达式
print('detail中order_id为458的dishes_name为: \n', detail.loc[detail['order_id'] == '1', ['order_id', 'dishes_name']])

img


请问这怎么解决

  • 写回答

2条回答 默认 最新

  • 云云豆酱 2022-11-09 21:05
    关注

    用数据库却可以,这是为什么呢

    
    import pandas as pd
    import numpy
    from sqlalchemy import create_engine
    engine = create_engine('mysql+pymysql://root:root@127.0.0.1:\
    3306/testdb?charset=utf8')
    detail = pd.read_sql_table('meal_order_detail1',con = engine)
    order_id = detail['order_id']
    dishes_name = detail.dishes_name
    print('detail中order_id为458的dishes_name为: \n', detail.loc[detail['order_id']=='458',['order_id','dishes_name']])
    print('detail中order_id为458的第1,5列数据为: \n', detail.iloc[(detail['order_id']=='458').values,[1,5]])
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月24日
  • 已采纳回答 11月16日
  • 修改了问题 11月9日
  • 创建了问题 11月9日

悬赏问题

  • ¥15 filenotfounderror:文件是存在的,权限也给了,但还一直报错
  • ¥15 关于远程桌面的鼠标位置转换
  • ¥15 MATLAB和mosek的求解问题
  • ¥20 修改中兴光猫sn的时候提示失败
  • ¥15 java大作业爬取网页
  • ¥15 怎么获取欧易的btc永续合约和交割合约的5m级的历史数据用来回测套利策略?
  • ¥15 有没有办法利用libusb读取usb设备数据
  • ¥15 为什么openeluer里面按不了python3呢?
  • ¥15 关于#matlab#的问题:训练序列与输入层维度不一样
  • ¥15 关于Ubuntu20.04.3LTS遇到的问题:在安装完CUDA驱动后,电脑会进入卡死的情况,但可以通过键盘按键进入安全重启,但重启完又会进入该情况!