Pandas DataFrame仅命名1列

时间:2016-07-13 21:48:37

标签: python pandas dataframe

Pandas Dataframe是否有办法仅列出第一列或第一列和第二列,即使有4列:

下面

for x in range(1, len(table2_query) + 1):
    if x == 1:
        cursor.execute(table2_query[x])
        df = pd.DataFrame(data=cursor.fetchall(), columns=['Q', col_name[x-1]])

它给了我这个:

  

AssertionError:传递了2列,传递的数据有4列

1 个答案:

答案 0 :(得分:3)

考虑df

df = pd.DataFrame(np.arange(8).reshape(2, 4), columns=list('ABCD'))
df

enter image description here

然后使用rename并将名称更改的字典传递给参数columns

df.rename(columns=dict(A='a', B='b'))

enter image description here

仅在命名列的子集

时实例化DataFrame

使用pd.DataFrame构建数据框时,要么不传递索引/列参数,要么让pandas自动生成索引/列对象,要么自己传递一个。如果您自己传递,则必须与数据的尺寸相匹配。模仿大熊猫的自动生成同时增加你想要的大熊猫的麻烦并不值得麻烦,而且很丑陋并且可能是非高效的。换句话说,我甚至无法想到这样做的理由。

另一方面,重命名列/索引值非常容易。事实上,我们可以重命名一些。我认为下面的内容更符合您提问的精神:

df = pd.DataFrame(np.arange(8).reshape(2, 4)).rename(columns=str).rename(columns={'1': 'A', '3': 'F'})
df

enter image description here