Python中的table()等价函数(来自R)

时间:2019-12-26 07:44:51

标签: python r python-3.x

我试图在Python中获得table()等效函数(从R)。

我有一张桌子:

+-----+--------+
|  Sr | Gender |
+-----+--------+
| 123 |    M   |
+-----+--------+
| 124 |    M   |
+-----+--------+
| 126 |    M   |
+-----+--------+
| 127 |    F   |
+-----+--------+
| 128 |    F   |
+-----+--------+

预期输出:

+---+---+
| M | F |
+---+---+
| 3 | 2 |
+---+---+

在R中,可以通过table(df$Gender)

轻松实现

但不确定如何在Python中实现此目标。我已经尝试过crosstab()和ivot_table(),但无法获得确切的语法。

1 个答案:

答案 0 :(得分:2)

您可以通过几种方法来完成此操作,具体取决于您想要获得什么:

df = pd.read_clipboard()

In [629]: df.Gender.value_counts()                                                                                                                                                             
Out[629]: 
M    3
F    2

or

print(pd.value_counts(df['Gender']).to_frame().T.to_string(index=False))                                                                                                             
 M  F
 3  2

In [630]: pd.DataFrame(df.Gender.value_counts())                                                                                                                                               
Out[630]: 
   Gender
M       3
F       2

In [632]: pd.DataFrame(df.Gender.value_counts()).T                                                                                                                                             
Out[632]: 
        M  F
Gender  3  2

或您的确切要求:

In [643]: pd.DataFrame(df.Gender.value_counts()).rename(columns={'Gender': ''}).T                                                                                                              

  M  F
  3  2