我有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)
以第一个代码为例,我得到一个O / P。在第二个代码的情况下,我得到一个O / P并警告说-
C:\ Users \ ILESH \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ api.py:107:RuntimeWarning:'int'和'str'实例之间不支持'<',排序顺序对于无可比拟的对象未定义 结果= result.union(其他)
我的问题是为什么我仅在第二程序而不是第一程序中得到此错误?
答案 0 :(得分:0)
在第一段代码中,您的索引仅是数字:
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'