将value_count系列转换为pandas中的数据框时缺少第一列

时间:2017-03-08 23:10:19

标签: python pandas dataframe

我是Python和编程的新手。我对R有一些经验,发现熊猫有点困难。

我正在尝试进行频率计数,然后将其作为DataFrame对象返回。

df = pd.read_csv('gender_data.csv')

x = df['Gender'].value_counts()

这将返回以下系列对象:

       Gender
Male    200
Female  100

我想将其转换为DataFrame对象,以便绘制并指定轴信息。这就是我遇到问题的原因,因为.to_frame()会切断系列中的类别标签。

x.to_frame()

返回

Gender
200
100

有没有办法将系列转换为DataFrame并保留类别列?在R中我想我可以通过使用as.data.frame(x)

来实现这一点

1 个答案:

答案 0 :(得分:1)

我建议如下:

import pandas as pd
df = pd.DataFrame({"gender": ["male", "female", "male", "male", "female"]})
df = df["gender"].value_counts().reset_index()
df

返回:

    index   gender
0   male    3
1   female  2

之后,您可以通过重新定义列名来清理:

df.columns = ["gender", "counts"]
df

结果:

    gender  counts
0   male    3
1   female  2