我对merge做了些错事,我不明白它是什么。我已经做了以下工作来估计一系列整数值的直方图:
import pandas as pnd
import numpy as np
series = pnd.Series(np.random.poisson(5, size = 100))
tmp = {"series" : series, "count" : np.ones(len(series))}
hist = pnd.DataFrame(tmp).groupby("series").sum()
freq = (hist / hist.sum()).rename(columns = {"count" : "freq"})
如果我打印hist
和freq
这就是我得到的:
> print hist
count
series
0 2
1 4
2 13
3 15
4 12
5 16
6 18
7 7
8 8
9 3
10 1
11 1
> print freq
freq
series
0 0.02
1 0.04
2 0.13
3 0.15
4 0.12
5 0.16
6 0.18
7 0.07
8 0.08
9 0.03
10 0.01
11 0.01
它们都由"series"
索引,但是如果我尝试合并:
> df = pnd.merge(freq, hist, on = "series")
我得到一个KeyError: 'no item named series'
异常。如果省略on = "series"
,则会得到IndexError: list index out of range
异常。
我不明白我做错了什么。可能“series”是一个索引,而不是一个列,所以我必须用不同的方法来做?
来自docs:
我不知道为什么这不在docstring中,但它解释了你的问题。
您可以给出
left_index
和right_index
:或者可以将索引设为列并使用
on
:或者,更简单地说,} 方法,它可以完全满足您的需要:
DataFrame
有一个^{相关问题 更多 >
编程相关推荐