Python中DataFrame.append中的SORT参数

时间:2018-10-04 16:22:12

标签: python

我有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(其他)

我的问题是为什么我仅在第二程序而不是第一程序中得到此错误?

1 个答案:

答案 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'