相关疑难解决方法(0)

Pandas 按两列分组并展开第三列

我有一个具有以下结构的 Pandas 数据框:

A       B       C
a       b       1
a       b       2
a       b       3
c       d       7
c       d       8
c       d       5
c       d       6
c       d       3
e       b       4
e       b       3
e       b       2
e       b       1
Run Code Online (Sandbox Code Playgroud)

我想把它改成这样:

A       B       C1      C2      C3      C4      C5
a       b       1       2       3       NAN     NAN
c       d       7       8       5       6       3
e       b       4       3       2       1       NAN
Run Code Online (Sandbox Code Playgroud)

换句话说,类似于对 A 和 B 进行分组并将 C 扩展到不同的列。

知道每组的长度是不同的。

C已经订购了 …

python pandas

8
推荐指数
1
解决办法
1043
查看次数

Pandas:如何将行中的一列旋转到列中

鉴于此数据框:

   feature score    searchTerm
0   a      0.534509 pizza
1   b      0.586020 pizza
2   c      0.588972 pizza
3   a      0.566261 chinese
4   b      0.572405 chinese
5   c      0.489369 chinese
6   a      0.499068 thai
7   b      0.431068 thai
8   c      0.441617 thai
Run Code Online (Sandbox Code Playgroud)

功能仅限于(a,b,c)

我想将数据框转换为:

   a        b        c          searchTerm
   0.534509 0.586020 0.588972   pizza
   0.566261 0.572405 0.489369   chinese    
   0.499068 0.431068 0.441617   thai
   ...
   ...
Run Code Online (Sandbox Code Playgroud)

python pivot multiple-columns dataframe pandas

7
推荐指数
1
解决办法
3468
查看次数

熊猫-删除列索引的标签

我有一个数据框,如下所示:

PLEASE_REMOVE  2013  2014  2015
 THIS_IS_EASY
-------------------------------
          Bob     0     3     4
         Mary     2     3     6
Run Code Online (Sandbox Code Playgroud)

年份(2013、2014、2015)是列索引标签。名称(Mary,Bob)是行索引标签。

我以某种方式设法获得行索引和列索引的标签。

使用df.index.names = ['']我可以删除THIS_IS_EASY位。

如何删除PLEASE_REMOVE位?

所需的输出是:

               2013  2014  2015
 -------------------------------
          Bob     0     3     4
         Mary     2     3     6
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

7
推荐指数
3
解决办法
5988
查看次数

Pandas 在 Python 中将一些行转换为列

所以我的数据集有一些业务 n 日期的信息,如下所示:

Business    Date    Value
a         1/1/2017   127
a         2/1/2017   89
b         2/1/2017   122
a         1/1/2018   555
a         2/1/2018   455
Run Code Online (Sandbox Code Playgroud)

我需要以下格式的数据:我如何转置它。我不想在我的输出数据集中多级

Business    1/1/2017  2/1/2017 1/1/2018  2/1/2018
 a           127         89     555        455
 b           N/A        122      N/A       N/A
Run Code Online (Sandbox Code Playgroud)

我尝试了以下语法:

df = df.set_index(['Business','Date'])['Value'].unstack()
df=df.pivot(index='Business', columns='Date', values='Value')
Run Code Online (Sandbox Code Playgroud)

我得到如下输出:

Date    1/1/2017    2/1/2017    1/1/2018    2/1/2018
Business
 a        454         5555        555         444 
 b        -            444         -           -
Run Code Online (Sandbox Code Playgroud)

当我打印列时,它不会将 LOB 显示为列。我的最终数据框还应包括业务、日期字段作为列,以便我可以将此数据框与业务上的另一个数据框连接起来

python python-2.7 pandas

6
推荐指数
1
解决办法
2万
查看次数

在 Pandas 中,如何将布尔列转换为分类列?

我有一个 Pandas DataFrame,其中一列包含布尔值。想想这样的事情:

   id  is_male  count
0   1     True     10
1   1    False      8
2   2     True      5
3   2    False     10
4   3     True      3
5   3    False      4
Run Code Online (Sandbox Code Playgroud)

例如,其中id标识一个学校班级,其他列表示班级中有多少男学生和女学生。现在,相同的信息可以以更简洁的方式呈现,例如:

  id  male  female
0  1    10       8
1  2     5      10
2  3     3       4
Run Code Online (Sandbox Code Playgroud)

我的问题:是否有一种干净的方法,使用 Pandas 将第一个 DataFrame 转换为第二个 DataFrame?我有一个实现,但既不干净也不短。如果需要的话我可以提供,但我不想让我的问题陈述变得混乱。

python pandas

6
推荐指数
1
解决办法
2681
查看次数

如何融化熊猫数据框?

标签上,我经常看到用户询问有关在 pandas 中融合数据框的问题。我将尝试针对此主题进行规范的问答(自我回答)。

我要澄清:

  1. 什么是熔体?

  2. 我如何使用熔体?

  3. 我什么时候使用熔体?

我看到一些关于融化的热门问题,例如:

所以我将尝试针对这个主题进行规范的问答。



数据集:

我将在这个随机成绩数据集上为随机年龄的随机人提供我所有的答案(更容易解释答案:D):

import pandas as pd
df = pd.DataFrame({'Name': ['Bob', 'John', 'Foo', 'Bar', 'Alex', 'Tom'], 
                   'Math': ['A+', 'B', 'A', 'F', 'D', 'C'], 
                   'English': ['C', 'B', 'B', 'A+', 'F', 'A'],
                   'Age': [13, 16, 16, 15, 15, 13]})


>>> df
   Name Math English  Age
0   Bob   A+       C   13
1  John …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas pandas-melt

6
推荐指数
2
解决办法
172
查看次数

使用分组数据(从长到宽)重塑 Pandas 数据帧

假设我有以下格式的数据:

group_id | entity_id | value
    A          a1        5
    A          a2        3
    A          a3        2
    B          b1        10
    B          b2        8
    B          b3        11
    C          c1        2
    C          c2        6
    C          c3        NaN
Run Code Online (Sandbox Code Playgroud)

表格1。

所以每个组(A/B/C)将有 3 个实体,保证。每个实体都有一个对应的值(如果不存在,有时是 NaN)。

我想将这些数据从现有格式重塑为...:

group_id | entity_1 | entity_2 | entity_3
   A          5          3          2
   B          10         8          11
   C          2          6          NaN
Run Code Online (Sandbox Code Playgroud)

表 2。

其中entity_1/entity_2/entity_3分别对应a1/a2/a3(或b1/b2/b3、c1/c2/c3)。

我该怎么做呢?

我发现的一种解决方案是使用枢轴函数,因此...

df.pivot(index='group_id', columns='entity_id', values='value')
Run Code Online (Sandbox Code Playgroud)

但据我所知,这个问题的问题在于,结果重整数据透视表中实体的列将不会采用我在上面表 2 中想要的格式——这对于我正在使用的一些下游内容很重要数据。

我可能会问一个愚蠢的问题,但我很难找到使用现有的枢轴/熔化函数以上述方式从长到宽的方法。谁能帮我吗?

如有必要,我很乐意提供更多详细信息,请告诉我!

python reshape dataframe pandas

5
推荐指数
1
解决办法
2771
查看次数

使用pandas按组获取计数

我有一个pandas数据框,其中包含如下所示的数据:

ID  year_month_id   Class
1   201612          A
2   201612          D
3   201612          B
4   201612          Other
5   201612          Other
6   201612          Other
7   201612          A
8   201612          Other
9   201612          A
1   201701          B
Run Code Online (Sandbox Code Playgroud)

因此,ID可以在特定月份的任何课程中,下个月他的课程可能会发生变化.现在我要做的是为每个ID获取它在特定类下的月数以及它所属的最新类.如下所示:

ID  Class_A Class_B Class_D Other Latest_Class
1   2        3       4         0    B
2   12       0       0         0    D
Run Code Online (Sandbox Code Playgroud)

我如何在python中实现这一点.有人可以帮我这个吗?此外,由于真实数据集很大并且无法手动验证,我如何才能获得超过1类的ID列表?

python group-by dataframe pandas pandas-groupby

5
推荐指数
1
解决办法
204
查看次数

如何在数据框中旋转包含字符串的一列?

我正在尝试通过将数据中的一列转换为行(通过旋转或取消堆叠)来重塑 Pandas 数据框。

我对此很陌生,很可能我遗漏了一些明显的东西。我进行了广泛的搜索,但未能成功应用我遇到的任何解决方案。

df
    Location    Month       Metric       Value
0   Texas       January     Temperature  10
1   New York    January     Temperature  20
2   California  January     Temperature  30
3   Alaska      January     Temperature  40
4   Texas       January     Color        Red
5   New York    January     Color        Blue
6   California  January     Color        Green
7   Alaska      January     Color        Yellow
8   Texas       February    Temperature  15
9   New York    February    Temperature  25
10  California  February    Temperature  35
11  Alaska      February    Temperature  NaN
12  Texas       February    Color        NaN
13  New York …
Run Code Online (Sandbox Code Playgroud)

python pivot pivot-table python-3.x pandas

5
推荐指数
1
解决办法
3024
查看次数

如何计算 pandas 数据框中每分钟出现的次数

我有一个像这样的熊猫数据框:

timestamp           status  
2019-01-01 09:00:00 FAILED
2019-01-01 09:00:00 FAILED
2019-01-01 09:00:00 UNKNOWN
2019-01-01 09:00:00 PASSED
2019-01-01 09:00:00 PASSED
2019-01-01 09:01:00 PASSED
2019-01-01 09:01:00 FAILED 
Run Code Online (Sandbox Code Playgroud)

如何对每分钟的数据进行分组并统计每分钟每个状态的数量以获得此数据框:

timestamp           PASSED FAILED UNKNOWN   
2019-01-01 09:00:00 2      2      1
2019-01-01 09:01:00 1      1      0
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

5
推荐指数
1
解决办法
3102
查看次数