Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据帧中调用并分配特定变量_Python_Pandas_Dataframe_Cell_Multiple Columns - Fatal编程技术网

Python 在数据帧中调用并分配特定变量

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

我的数据集有这种格式、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    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不是列名。我想你弄错了。请阅读第一个答案的第二条评论,提问者问了第二个问题。我认为穆卡拉姆·帕夏的回答更符合上下文。但如果你能修改一下你的答案,我将删除我的反对票。