Pandas 为什么我能';不要把这些列合并在一起

Pandas 为什么我能';不要把这些列合并在一起,pandas,dataframe,numpy,Pandas,Dataframe,Numpy,我的目标是将数组转换为DataFrame,错误只发生在列= housing_extra = pd.DataFrame(housing_extra_attribs, index=housing_num.index, columns=[housing.columns,'rooms_per_household', 'population_per_household', 'bedrooms_per_room']) 结果,它又回来了 Ass

我的目标是将数组转换为DataFrame,错误只发生在列=

housing_extra = pd.DataFrame(housing_extra_attribs,
                index=housing_num.index,
                columns=[housing.columns,'rooms_per_household', 'population_per_household', 'bedrooms_per_room'])
结果,它又回来了

AssertionError: Number of manager items must equal union of block items
# manager items: 4, # tot_items: 12

它说我只输入4列,但是
housing.columns
本身有9列

在这里,当我运行
housing.columns

Index(['longitude', 'latitude', 'housing_median_age', 'total_rooms',
      'total_bedrooms', 'population', 'households', 'median_income',
      'ocean_proximity'],
     dtype='object')
因此,我的问题是如何将现有的
housing.columns
列与3个新列合并<代码>[“每户房间数”、“每户人口数”、“每户卧室数”]一起使用。

您可以使用将列列表添加到现有数据框列中:

columns= housing.columns.union(
['rooms_per_household', 'population_per_household', 'bedrooms_per_room'],
sort=False)
或转换为列表,然后将其余列添加为列表:

columns = (housing.columns.tolist() + 
 ['rooms_per_household', 'population_per_household', 'bedrooms_per_room'])
然后:


例如: 假设此df:

df = pd.util.testing.makeDataFrame()
print(df.columns)
#Index(['A', 'B', 'C', 'D'], dtype='object')
将其传递到列表中时:

[df.columns,'E','F','G']
你会得到:

[Index(['userId', 'column_1', 'column_2', 'column_3'], dtype='object'),'E','F','G']
使用union时的v/s:

df.columns.union(['E','F','G'],sort=False)
你会得到:

Index(['A', 'B', 'C', 'D', 'E', 'F', 'G'], dtype='object')
您可以使用将列列表添加到现有数据框列:

columns= housing.columns.union(
['rooms_per_household', 'population_per_household', 'bedrooms_per_room'],
sort=False)
或转换为列表,然后将其余列添加为列表:

columns = (housing.columns.tolist() + 
 ['rooms_per_household', 'population_per_household', 'bedrooms_per_room'])
然后:


例如: 假设此df:

df = pd.util.testing.makeDataFrame()
print(df.columns)
#Index(['A', 'B', 'C', 'D'], dtype='object')
将其传递到列表中时:

[df.columns,'E','F','G']
你会得到:

[Index(['userId', 'column_1', 'column_2', 'column_3'], dtype='object'),'E','F','G']
使用union时的v/s:

df.columns.union(['E','F','G'],sort=False)
你会得到:

Index(['A', 'B', 'C', 'D', 'E', 'F', 'G'], dtype='object')

但是有一个错误的语法:从tolist()到to_list()@Wallika。谢谢你的评论。tolist()在版本0中也适用于我。25.1. 我想它可能已经随着版本的改变而改变了。很高兴你能理解这一点。但是有一个错误的语法:从tolist()到to_list()@Wallika。谢谢你的评论。tolist()在版本0中也适用于我。25.1. 我想它可能已经随着版本的改变而改变了。很高兴你能想到这一点。