Python新手。简单的问题让我头晕目眩。在
假设我有一个熊猫系列,如下所示:
my_series = pd.Series([(1,2), (2,3), (1,3)])
我还有一个“查找”列表,如下所示:
^{pr2}$1)我想知道如何将我的“U”系列中的每一对替换为“我的”查找中的相应值。在这种情况下,我的系列应该变成pd系列([2,6,5])。在
2)我想知道如何用相应的值创建一个新的序列,而不是像前一个问题那样替换。在
3)如果不是每个“键”都在我的“查找”中,答案会改变吗?例如,如果我的“查找”改为:
my_lookup = [([0,1], 0), ([1,1], 1), ([2,2], 3), ([0,3], 4), ([1,3], 5), ([2,3], 6)]
我想用字典和地图编辑功能:
df["Gender"] = df["Sex"].map({"female":0, "male":1}).astype(int)
…但是我的键是列表,而Python似乎不喜欢这样,所以我尝试另一种方法。在
你用字典绝对是对的。在
你的“钥匙”有可能改变吗?从您系列的初始声明来看,看起来它们不会,但是您确实在
my_lookup
中以列表的形式存在。在如果它们的键不变,可以将它们转换为元组并在字典中用作键。例如(在普通python中,因为我没有在这台计算机上安装pandas来测试):
然后,要替换序列中的每个键,可以执行以下操作:
^{pr2}$如果不是每个键都在查找中,则需要确定是否存在合理的默认值。如果有,您可以在字典上使用
.get
:如果不是,可以使用
None
作为默认值,然后对结果序列进行筛选以删除None
的值。在相关问题 更多 >
编程相关推荐