大熊猫标题的第一行

新手上路,请多包涵

我有以下熊猫数据 df

 import pandas as pd
from io import StringIO
s = '''\
"Unnamed: 0","Unnamed: 1"
Objet,"Unités vendues"
Chaise,3
Table,2
Tabouret,1
'''
df = pd.read_csv(StringIO(s))

看起来像:

   Unnamed: 0     Unnamed: 1
0      Objet  Unités vendues
1     Chaise                 3
2      Table                 2
3   Tabouret                 1

我的目标是将第一行作为标题。

我用 :

 headers = df.iloc[0]
df.columns = [headers]

但是,“0”出现在索引列名中(这是正常的,因为这个 0 在第一行)。

 0          Objet Unités vendues
1         Chaise              3
2          Table              2

我试图以多种方式删除它,但没有任何效果:

del df.index.name 来自 这篇文章

这篇文章这篇 文章中的 df.columns.name = None 都没有(情况相同)

我怎样才能得到这个预期的输出:

            Objet Unités vendues
1         Chaise              3
2          Table              2

原文由 Alex Dana 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 712
2 个回答

当你首先加载你的表时定义它怎么样?

pd.read_csv('filename', header = 1)

否则我想你可以这样做:

df.drop('0', axis = 1)

原文由 Paulo Caldas 发布,翻译遵循 CC BY-SA 4.0 许可协议

什么对我有用。

代替:

     headers = df.iloc[0]
    df.columns = [headers]

和:

     headers = df.iloc[0].values
    df.columns = headers
    df.drop(index=0, axis=0, inplace=True)

使用 .values 返回 Series 行中的值作为不包含索引值的列表。重新分配列标题然后按预期工作,没有 0。第 0 行仍然存在,因此应该使用 df.drop 将其删除。

原文由 brweb 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题