Pandas 为什么我能';不要把这些列合并在一起
我的目标是将数组转换为DataFrame,错误只发生在列=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
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. 我想它可能已经随着版本的改变而改变了。很高兴你能想到这一点。