Python 在数据帧中调用并分配特定变量
我的数据集有这种格式、3列和一些唯一的变量Python 在数据帧中调用并分配特定变量,python,pandas,dataframe,cell,multiple-columns,Python,Pandas,Dataframe,Cell,Multiple Columns,我的数据集有这种格式、3列和一些唯一的变量 A = [A1, A2, A3, A4] B = [B1, B2, B3] C = [C1, C2, C3, C4, C5] 我想调用一个特定的变量,然后给它赋值 例1: A B C A2 B3 C5 A1 B2 C2 A3 B1 C4 A4 B2 C3 A2 B3 C1 调用所有[A1,B2,C3],并将它们赋值为等于[1,2,3] A B C A2
A = [A1, A2, A3, A4]
B = [B1, B2, B3]
C = [C1, C2, C3, C4, C5]
我想调用一个特定的变量,然后给它赋值
例1:
A B C
A2 B3 C5
A1 B2 C2
A3 B1 C4
A4 B2 C3
A2 B3 C1
调用所有[A1,B2,C3],并将它们赋值为等于[1,2,3]
A B C
A2 B3 C5
1 2 C2
A3 B1 C4
A4 2 3
A2 B3 C1
@Scott Boston建议使用字典以这种方式分配值
示例2:我想在一个循环中逐个赋值,例如首先赋值A1,然后进行一些计算,然后赋值A2,依此类推。那我怎么做呢
提前感谢IIUC,使用字典替换:
print(df)
d=dict(zip( ['A1', 'B2', 'C3'],[1,2,3] ))
df_out = df.replace(d)
print(df_out)
输出:
A B C
0 A2 B3 C5
1 A1 B2 C2
2 A3 B1 C4
3 A4 B2 C3
4 A2 B3 C1
A B C
0 A2 B3 C5
1 1 2 C2
2 A3 B1 C4
3 A4 2 3
4 A2 B3 C1
创建一个用于替换的词典
d = {'A1':1,'B2':2,'C3':3}
@温家宝建议使用以下语句创建字典:
print(df)
d=dict(zip( ['A1', 'B2', 'C3'],[1,2,3] ))
df_out = df.replace(d)
print(df_out)
输出:
A B C
0 A2 B3 C5
1 A1 B2 C2
2 A3 B1 C4
3 A4 B2 C3
4 A2 B3 C1
A B C
0 A2 B3 C5
1 1 2 C2
2 A3 B1 C4
3 A4 2 3
4 A2 B3 C1
对于第二个示例,您希望以迭代方式分配值,您可以这样做
var = ['A1','B2','C3']
val = [1,2,3]
for i in range(len(val)):
df = df.replace({var[i]:val[i]})
# your calculations here...
关于你答案的第二部分,我相信熊猫的
apply()
功能将是一个更有效的解决方案。
例如:
也许使用d=dict(zip(['A1','B2','C3'],[1,2,3])来创建dict谢谢!如果我想在循环中一个接一个地给变量赋值,我该怎么做?例如,更改A1的值,进行一些计算,然后更改A2的值,等等。@ThanhNguyen请检查我的答案,这就是您要寻找的吗?实际上,您可以使用
replace
一次关联一个变量。IMHO,apply
不适合第二个问题的上下文。apply()函数用于迭代地将函数分配给DF的所有元素,这是提问者在问题的第二部分中所要求的。她不想分配给所有元素。你能再读一遍吗?例如,只需更换A1
<代码>A1不是列名。我想你弄错了。请阅读第一个答案的第二条评论,提问者问了第二个问题。我认为穆卡拉姆·帕夏的回答更符合上下文。但如果你能修改一下你的答案,我将删除我的反对票。