python - Python中DataFrame.append中的SORT参数
问题描述
我有 2 个程序,如下所示:
第一个节目
import pandas as pd
df=pd.DataFrame()
d1={ 12:12,13:13,67:34}
df=df.append(d1,ignore_index=True)
d2={'JIGNESH':{'roll':12,'marks':[12,34]} ,
'AURA':{'roll':134,'marks':[67,67]}
}
df=df.append(d2,ignore_index=True)
print(df)
第二个节目
dfe=pd.DataFrame()
d1={ 12:12,13:13,67:34}
df2=pd.DataFrame(d1,index=[0])
dfe=dfe.append(df2)
df3=pd.DataFrame(
{'JIGNESH': {'roll': 12, 'marks': [12, 34]},
'AURA': {'roll': 134, 'marks': [67, 67]}})
dfe=dfe.append(df3)
print(dfe)
如果是第一个代码,我会得到 ao/p 。在第二个代码的情况下,我得到 ao/p 以及警告说 -
C:\Users\ILESH\Anaconda3\lib\site-packages\pandas\core\indexes\api.py:107: RuntimeWarning: '<' 在 'int' 和 'str' 的实例之间不支持,排序顺序未定义无与伦比的对象 result = result.union(other)
现在我的问题是为什么我只在第二个程序中而不是在第一个程序中得到这个错误?
解决方案
在第一段代码中,您的索引只是数字:
df.index
RangeIndex(start=0, stop=2, step=1)
在您的第二段代码中,您的索引混合了数字和字符串类型:
dfe.index
Index([0, 'marks', 'roll'], dtype='object')
在第二个中,它不知道如何对字符串与 int 进行排序,因此它会向您发出警告,类似于您尝试运行以下命令时:
lst=[0,4,5,'a','b',8]
lst.sort()
TypeError: '<' not supported between instances of 'str' and 'int'
推荐阅读
- c# - Azure 功能:在 MAIL FROM [DB6P189CA0021.EURP189.PROD.OUTLOOK.COM] 期间,客户端未经过身份验证以发送匿名邮件
- python - Django 通道:连接到套接字
- nested - TYPO3:带有嵌套 For 循环的 If 语句的内联表示法
- node.js - nodejs base64到blob的转换
- gitlab - 如何在 gitlab 项目页面中隐藏冗余(auto devops kubernetes CI/CD)按钮
- python - 如何在 django admin 的非只读字段中突出显示一些单词?
- google-apps-script - 如何在谷歌脚本中获取用户 ID?
- azure - 将“日志流”转发到外部源
- asp.net-mvc - NopCommerce 插件本地化
- javascript - 我无法让 Youtube API 在 Squarespace 中工作