刚开始使用Python,遇到了这个错误
我有两个数据帧A和B。我使用其中一个输入列输入A,然后将两者结合,我想输入B。我在第二个打印步骤中遇到错误。我确实研究了其他类似的线程,但没有找到解决方案。你能帮我修一下吗
import pandas as pd
A = pd.DataFrame([
{"AC1":"V1", "AC2":"190801"},
{"AC1":"V2", "AC2":"200414"},
])
A = A.set_index("AC1")
B = pd.DataFrame([
{"BC1":"V1","BC2":"190801","BC3":"2019-10-01"},
{"BC1":"V1","BC2":"191201","BC3":"2019-12-01"},
{"BC1":"V2","BC2":"200414","BC3":"2020-01-24"}
])
B["BC3"] = pd.to_datetime(B["BC3"])
B = B.set_index(["BC1","BC2"])
input = pd.DataFrame([
{"X":"V1","State":"FL","Z":100},
{"X":"V2","State":"CA","Z":130},
])
for item in input["X"].unique():
p1 = A.loc[item]
print(p1)
p2 = B.loc[[(item,p1)],"BC3"]
print(p2)
TypeError:“Series”对象是可变的,因此不能对其进行哈希运算
如果我理解正确,您希望使用“输入”数据帧的X列的每个唯一值,在A数据帧中查找,从中获取AC2值,然后使用X值加上AC2值在B数据帧的BC3中查找值。是这样吗
如果是这样,您只需要在以
p1 =
开头的行中添加一个列选择器,并从以p2 =
开头的行中删除一组括号这对我很有用:
我从中获得以下输出:
相关问题 更多 >
编程相关推荐