相关疑难解决方法(0)

熊猫合并101

  • 如何用pandas 执行(LEFT| RIGHT| FULL)(INNER| OUTER)连接?
  • 合并后如何为缺失的行添加NaN?
  • 合并后如何摆脱NaN?
  • 我可以合并索引吗?
  • 如何合并多个DataFrame?
  • mergejoinconcatupdate?谁?什么?为什么?!

... 和更多.我已经看到了这些反复出现的问题,询问了pandas合并功能的各个方面.今天关于合并及其各种用例的大部分信息在几十个措辞严厉,不可搜索的帖子中都是分散的.这里的目的是为后代整理一些更重要的观点.

这个QnA应该是关于常见熊猫习语的一系列有用的用户指南的下一部分(参见关于转动的这篇文章,以及关于连接的这篇文章,我将在稍后介绍).

请注意,这篇文章并不是文档的替代品,所以请阅读它!一些例子来自那里.

python merge join pandas

271
推荐指数
6
解决办法
4万
查看次数

pandas将一些列转换为行

所以我的数据集有n个日期的位置信息.问题是每个日期实际上是一个不同的列标题.例如,CSV看起来像

location    name    Jan-2010    Feb-2010    March-2010
A           "test"  12          20          30
B           "foo"   18          20          25
Run Code Online (Sandbox Code Playgroud)

我想要的是它看起来像

location    name    Date        Value
A           "test"  Jan-2010    12       
A           "test"  Feb-2010    20
A           "test"  March-2010  30
B           "foo"   Jan-2010    18       
B           "foo"   Feb-2010    20
B           "foo"   March-2010  25
Run Code Online (Sandbox Code Playgroud)

问题是我不知道列中有多少个日期(虽然我知道它们总是会在名字后面开始)

python pandas

52
推荐指数
6
解决办法
5万
查看次数

熊猫:group by和Pivot表差异

我刚刚开始学习熊猫,并想知道它们pandas groupbypandas pivot_table功能之间是否有任何区别.任何人都可以帮我理解它们之间的区别.帮助将不胜感激.

python pandas

46
推荐指数
4
解决办法
2万
查看次数

Python Pandas:使用aggfunc = count unique pivot的数据透视表

df2 = pd.DataFrame({'X' : ['X1', 'X1', 'X1', 'X1'], 'Y' : ['Y2','Y1','Y1','Y1'], 'Z' : ['Z3','Z1','Z1','Z2']})

    X   Y   Z
0  X1  Y2  Z3
1  X1  Y1  Z1
2  X1  Y1  Z1
3  X1  Y1  Z2

g=df2.groupby('X')

pd.pivot_table(g, values='X', rows='Y', cols='Z', margins=False, aggfunc='count')
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):... AttributeError:'Index'对象没有属性'index'

如何获得一个数据透视表,其中包含另外两列的一个DataFrame列的唯一值计数
是否有aggfunc用于计数独特之处?我应该用np.bincount()吗?

NB.我知道'系列',values_counts()但我需要一个数据透视表.


编辑:输出应该是:

Z   Z1  Z2  Z3
Y             
Y1   1   1 NaN
Y2 NaN NaN   1
Run Code Online (Sandbox Code Playgroud)

python pivot-table pandas

45
推荐指数
5
解决办法
11万
查看次数

与蟒蛇大熊猫融化相反

我无法弄清楚如何在python中使用Pandas进行"反向融化".这是我的起始数据

import pandas as pd

from StringIO import StringIO

origin = pd.read_table(StringIO('''label    type    value
x   a   1
x   b   2
x   c   3
y   a   4
y   b   5
y   c   6
z   a   7
z   b   8
z   c   9'''))

origin
Out[5]: 
  label type  value
0     x    a      1
1     x    b      2
2     x    c      3
3     y    a      4
4     y    b      5
5     y    c      6
6     z    a      7
7     z    b      8
8     z …
Run Code Online (Sandbox Code Playgroud)

python pivot reshape melt pandas

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

关于索引重复输入的Pandas转向警告

关于Pandas pivot方法的文档,我们有:

Examples
--------
>>> df
    foo   bar  baz
0   one   A    1.
1   one   B    2.
2   one   C    3.
3   two   A    4.
4   two   B    5.
5   two   C    6.

>>> df.pivot('foo', 'bar', 'baz')
     A   B   C
one  1   2   3
two  4   5   6
Run Code Online (Sandbox Code Playgroud)

DataFrame的结构如下:

   name   id     x
----------------------
0  john   1      0
1  john   2      0
2  mike   1      1
3  mike   2      0
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

      1    2   # (this is the id …
Run Code Online (Sandbox Code Playgroud)

python pandas

43
推荐指数
4
解决办法
3万
查看次数

Python Pandas:将Rows转换为列标题

我有以下数据帧:

Year    Country          medal    no of medals
1896    Afghanistan      Gold        5
1896    Afghanistan      Silver      4
1896    Afghanistan      Bronze      3
1896    Algeria          Gold        1
1896    Algeria          Silver      2
1896    Algeria          Bronze      3
Run Code Online (Sandbox Code Playgroud)

我想要这样.

Year    Country      Gold   Silver   Bronze
1896    Afghanistan    5      4         3
1896    Algeria        1      2         3
Run Code Online (Sandbox Code Playgroud)

Stack/Unstack似乎不起作用.

python pandas

40
推荐指数
2
解决办法
4万
查看次数

pandas:如何使用多索引运行数据透视?

我想在熊猫上运行一个轴DataFrame,索引是两列,而不是一列.例如,年份的一个字段,月份的一个字段,显示"项目1"和"项目2"的"项目"字段和带有数值的"值"字段.我希望索引是年+月.

我设法让这个工作的唯一方法是将两个字段合并为一个,然后再将它们分开.有没有更好的办法?

下面复制的最小代码.非常感谢!

PS是的,我知道关键字'pivot'和'multi-index'还有其他问题,但我不明白他们是否/如何帮助我解决这个问题.

import pandas as pd
import numpy as np

df= pd.DataFrame()
month = np.arange(1, 13)
values1 = np.random.randint(0, 100, 12)
values2 = np.random.randint(200, 300, 12)


df['month'] = np.hstack((month, month))
df['year'] = 2004
df['value'] = np.hstack((values1, values2))
df['item'] = np.hstack((np.repeat('item 1', 12), np.repeat('item 2', 12)))

# This doesn't work: 
# ValueError: Wrong number of items passed 24, placement implies 2
# mypiv = df.pivot(['year', 'month'], 'item', 'value')

# This doesn't work, either:
# df.set_index(['year', 'month'], inplace=True) …
Run Code Online (Sandbox Code Playgroud)

python pivot multi-index pandas

40
推荐指数
2
解决办法
4万
查看次数

熊猫:pivot和pivot_table之间的区别.为什么只有pivot_table工作?

我有以下数据帧.

df.head(30)

     struct_id  resNum score_type_name  score_value
0   4294967297       1           omega     0.064840
1   4294967297       1          fa_dun     2.185618
2   4294967297       1      fa_dun_dev     0.000027
3   4294967297       1     fa_dun_semi     2.185591
4   4294967297       1             ref    -1.191180
5   4294967297       2            rama    -0.795161
6   4294967297       2           omega     0.222345
7   4294967297       2          fa_dun     1.378923
8   4294967297       2      fa_dun_dev     0.028560
9   4294967297       2      fa_dun_rot     1.350362
10  4294967297       2         p_aa_pp    -0.442467
11  4294967297       2             ref     0.249477
12  4294967297       3            rama     0.267443
13  4294967297       3           omega     0.005106
14  4294967297       3          fa_dun …
Run Code Online (Sandbox Code Playgroud)

python pivot pandas

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

Pandas列值到列?

我已经看到了将一个列/系列爆炸成Pandas数据帧的多个列的主题的一些变化,但我一直在尝试做一些事情而不是真正成功地使用现有的方法.

给定一个像这样的DataFrame:

    key       val
id
2   foo   oranges
2   bar   bananas
2   baz    apples
3   foo    grapes
3   bar     kiwis
Run Code Online (Sandbox Code Playgroud)

我想将key系列中的项目转换为列,并将val值作为值,如下所示:

        foo        bar        baz
id
2   oranges    bananas     apples
3    grapes      kiwis        NaN
Run Code Online (Sandbox Code Playgroud)

我觉得这应该是相对简单的事情,但是我现在一直在抨击我的头几个小时,随着卷积水平的提高,并没有成功.

python pandas

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

标签 统计

pandas ×10

python ×10

pivot ×3

join ×1

melt ×1

merge ×1

multi-index ×1

pivot-table ×1

reshape ×1