属性错误: 无法删除属性

4

我有一个这样的数据框df1

              Type  Count
0  Entire home/apt   5326
1       Hotel room    249
2     Private room   5570
3      Shared room    628

在对数据框 df1 进行转置后,转置后的数据框 df2 如下所示。
df2 = df1.T
df2 .columns = df2 .iloc[0]
df2 = df2 [1:]

print(df2.index)
Out: Index(['Count'], dtype='object')

print(df2.columns)
Out: Index(['Entire home/apt', 'Hotel room', 'Private room', 'Shared room'], dtype='object', name='Type')

print(df2)
Out:
Type    Entire home/apt Hotel room  Private room    Shared room
Count   5326            249         5570            628

我希望获得一个期望的数据框,应该长成这个样子(其中标题已消失)。
        Entire home/apt Hotel room  Private room    Shared room
Count   5326            249         5570            628

通过使用这段代码来将列名中的Type去除
del df2.columns.name

然而,这导致了一个错误:AttributeError: can't delete attribute

有人能解释一下这是什么意思以及如何解决它以获取所需的数据框吗?

谢谢。

编辑:请注意,此帖子未回答我的问题,因为它删除了列的名称/标题。 我只想删除列名中的属性名称(在此示例中为Type)。

3个回答

2

0
如果这个方法不起作用:删除 df2.index.name 你可以运行这个方法:df2.index.name = None

1
你的答案可以通过添加更多支持信息来改进。请编辑以添加进一步的细节,比如引用或文档,以便他人可以确认你的答案是否正确。你可以在帮助中心找到关于如何撰写良好答案的更多信息。 - Community

0

一个这个答案的版本。

Pandas默认需要列名。

因此,您可以像这样做来隐藏它

df2.rename(columns={'Type': ''}, inplace=True)

谢谢您的帮助。但是将“Type”重命名为空白仍然会留下某些内容,导致我无法使用streamlit.bar_chart(df2)进行图形化展示。 - Nemo
1
哦,如果你打算进一步绘制它,你可以只是说“Type”:无? - Swetank Poddar
谢谢你提供另一种使用.rename()的相同解决方案的观点/方法,并向我展示了None数据类型有用的情况。同时,由于我认为它不会对解决问题(从df2的第一列中删除标题“Type”)产生任何影响,所以未提及最终目的(绘图),请原谅。 - Nemo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接