【发布时间】:2018-01-14 12:50:27
【问题描述】:
我的问题与here发布的问题有点不同
所以我想开一个新线程。我有一个带有 5 个属性的 pandas 数据框。其中一个属性是使用 pandas 系列创建的。这是创建数据框的示例代码
import numpy as np
mydf1=pd.DataFrame(columns=['group','id','name','mail','gender'])
data = np.array([2540948, 2540955, 2540956,2540956,7138932])
x=pd.Series(data)
mydf1.loc[0]=[1,x,'abc','abc@xyz.com','male']
我有另一个数据框,创建数据框的代码如下
mydf2=pd.DataFrame(columns=['group','id'])
data1 = np.array([2540948, 2540955, 2540956])
y=pd.Series(data1)
mydf2.loc[0]=[1,y]
这些是样本数据。实际数据将有大量行,并且系列长度也很大。我想将 mydf1 与 mydf2 匹配,如果匹配,有时我不会在 mydf2 中有匹配的元素,那么我将从那里的 mydf1 中删除 id 的值例如,在 mydf2 中,运行后,我的 id 将是组 1 2540956,7138932。我还尝试了上面链接中提到的代码。但是对于第一行
counts = mydf1.groupby('id').cumcount()
我收到错误消息 TypeError:“系列”对象是可变的,因此它们不能被散列 在我的 Python 3.X 中。你能建议我如何解决这个问题吗?
【问题讨论】:
-
有什么建议吗?
-
我非常需要它。如果有人能建议我一个解决方案,我会很高兴
-
您能否提供更多数据...我无法从您的描述中看出您想要什么。
-
你怎么搭配?标准是什么?你是按组还是按 id 匹配?
-
谢谢@Tai,我一定会让你知道的