首页 > 解决方案 > Python Pandas:ValueError:无法设置列不匹配的行

问题描述

Pandas 相对较新,遇到上述错误。以下伪代码描述了我在合并两个 DataFrame 时想要获得的内容。

在 DataFrame DF 的行中,其中 DF 卧室等于 1,DataFrame DF 'Multiplier' 等于 DataFrame rent_1 'Multiplier'

这是我到目前为止的代码:

#DataFrame DF:
df = pd.DataFrame([
['123 HorseShoe Dr', 'St Petersburg', 2],
['13 Circle Ct', 'Gulfport', 1],
['21 Barcelona Ave', 'Tarpon Springs', 1],
['2113 Marks Dr', 'Treasure Island', 1],

    ], columns=['Address', 'City', 'BedroomsTotal'])
df.fillna(0, inplace=True)

#DataFrame Rent_1
rent_1 = pd.DataFrame([
    ['TREASURE ISLAND', 17.4947],
    ['TARPON SPRINGS', 20.0018],
    ['TIERRA VERDE', 18.3793],
    ['SOUTH PASADENA', 18.4124]    
    ], columns=['City', 'Multiplier'])

rent_1.fillna(0, inplace=True)
.set_index('City')
df.set_index('City')
joined = df.join(rent_1)
print(joined)

#Below is the code that is giving me an issue:
#df.loc['Multiplier'] = np.where(df['BedroomsTotal'] == 1), rent_1['Multiplier'])
np.where(df.loc[df['BedroomsTotal'] == 1], df['Multiplier'], rent_1['Multiplier'])

这是回溯:

line 1856, in _setitem_with_indexer_missing
    raise ValueError("cannot set a row with mismatched columns")
ValueError: cannot set a row with mismatched columns

非常感谢您对此的任何帮助。提前致谢!

标签: pythonpandasdataframe

解决方案


推荐阅读