RuntimeWarning pandas

时间:2017-07-10 13:09:18

标签: python pandas

我继续获得RuntimeWarning:unorderable类型:str()< int(),对于无法比较的对象,未定义排序顺序   结果= result.union(其他)来自以下代码。不完全确定我在哪里做错了什么。我试图让数据集看起来像this.

df = pd.read_excel('/Users/user/Desktop/------/data.xlsx')
df.rename(columns={'Product Installed Fiscal Quarter': 'Quarter', 'Serviceable Product #': 'Product Code', 'Sold To Customer Name': 'Account', 'Orderable Product Description': 'Product'}, inplace=True)
df.drop(['# of Licenses'], axis=1, inplace=True)

def all_products():
    products = []
    for index, row in df.iterrows():
        if row['Serviceable Product Description'] not in products:
            products.append(row['Serviceable Product Description'])
    products.insert(0, 'Account')
    products.insert(1, 'Time')
    return products

header = all_products()
xd = pd.DataFrame(columns= header)

def reformatted_data():    
    for index, row in df.iterrows():
        add = [0] * len(header)
        add.insert(0, row['Account'])
        add.insert(1, row['Quarter'])
        index = header.index(row['Serviceable Product Description'])
        add[index] = row['Quantity']
        xd.append(add)
    return xd
reformatted_data()

1 个答案:

答案 0 :(得分:0)

从Excel读取时,请务必注意您的数据类型。大部分时间里,Pandas都会做出很好的猜测,但是建议显式转换要广泛使用的列。例如,excel中的列可以具有字符串和数字而不必担心,但是Pandas要求列必须是统一类型。结果,Pandas会将该列强制转换为无提示字符串。提防。