【发布时间】:2021-01-17 19:07:42
【问题描述】:
刚开始使用 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' 对象是可变的,因此它们不能被散列
【问题讨论】:
-
始终以文本形式提供minimal reproducible example代码、数据、错误、当前输出和预期输出。如果相关,绘图图像是可以的。请参阅How to ask a good question。