Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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 如何有效地更改panda数据帧值_Python_Pandas - Fatal编程技术网

Python 如何有效地更改panda数据帧值

Python 如何有效地更改panda数据帧值,python,pandas,Python,Pandas,假设我有两个数据帧 第一: 第二 假设我想将DF1的值添加到DF2中,在1列中,它将适合ID&chan 我试着用一个简单的for循环来完成,但只花了几分钟就通过了前10K行。。我想知道如何才能有效地完成它——就好像我用numpy完成了一样,它会工作得更快。 只是澄清一下,可以在DF2中对ID进行洗牌。。所以我无法根据DF1预测它的位置 提前谢谢 更新帖子: 啊,好的。我想我明白你的意思了。 也许可以试试这样的方法: df1 = pd.DataFrame({ "ID":[1,2,3], "ch1"

假设我有两个数据帧

第一:

第二

假设我想将DF1的值添加到DF2中,在1列中,它将适合ID&chan

我试着用一个简单的for循环来完成,但只花了几分钟就通过了前10K行。。我想知道如何才能有效地完成它——就好像我用numpy完成了一样,它会工作得更快。 只是澄清一下,可以在DF2中对ID进行洗牌。。所以我无法根据DF1预测它的位置

提前谢谢

更新帖子:

啊,好的。我想我明白你的意思了。 也许可以试试这样的方法:

df1 = pd.DataFrame({ "ID":[1,2,3], "ch1":[0,-1,0], "ch2":[0,0,0], "ch3":[-1,0,1] })

new_df = pd.DataFrame()

min_ch = 1
max_ch = 3
for i in range(min_ch,max_ch+1):
    this_ch_str = "ch"+str(i)
    temp_df = df1[["ID",this_ch_str]].copy()
    temp_df["CH"] = i
    temp_df = temp_df.rename(columns={this_ch_str:"val"})
    temp_df = temp_df[["CH","ID","val"]]
    new_df = new_df.append(temp_df)
这有点复杂,但它完成了任务

原职:

我认为合并函数可能就是您要寻找的

下面是一个简单的例子:

import pandas as pd
df1 = pd.DataFrame({"ID":[1,2,3,4,5],"col1":["A","B","C","D","E"]})
df2 = pd.DataFrame({"ID":[1,2,3,4,5,6,7,8,9,10],"col2":["x","y","z","x","y","z","x","y","z","x"]})
df3 = pd.merge(left=df1,right=df2,on="ID",how="left")
存储在df3中的结果如下所示:

   ID col1 col2
0   1    A    x
1   2    B    y
2   3    C    z
3   4    D    x
4   5    E    y

希望这就是你想要的

请提供一个。在这种情况下,有帮助的是df1和df2的短短几行样本,以及所需的输出。df1=pd.DataFrame{ID:[1,2,3],ch1:[0,-1,0],ch2:[0,0],ch3:[-1,0,1]}df2=pd.DataFrame{ID:[1,2,3,3,2,1,1,3]},CH:[1,2,3,2]}所需结果:df3=pd.DataFrame{ID:[1,2,3,3,2,1,2,1,3],CH:[1,2,3,2,1,3,2],val:[0,0,1,0,0,-1,-1,1,0]}ID+CHAN非常感谢您的评论谢谢,但我的解释似乎不可理解,这里有一个例子:df1=pd.DataFrame{ID:[1,2,3],ch1:[0,0,0],ch3:[-1,0,1]}df2=pd.DataFrame{ID:[1,2,3,3,2,2,1,3],CH:[1,2,3,1,3,2,1,3,2]}期望结果:df3=pd.DataFrame{ID:[1,2,3,3,2,1,2,1,1,3,2],CH:[1,2,3,1,2,1,1,3,2],val:[0,0,1,0,0,0,-1,-1,0]}ID+CHAN非常感谢您的评论!我已经更新了上面的回复。看看您在寻找什么。
import pandas as pd
df1 = pd.DataFrame({"ID":[1,2,3,4,5],"col1":["A","B","C","D","E"]})
df2 = pd.DataFrame({"ID":[1,2,3,4,5,6,7,8,9,10],"col2":["x","y","z","x","y","z","x","y","z","x"]})
df3 = pd.merge(left=df1,right=df2,on="ID",how="left")
   ID col1 col2
0   1    A    x
1   2    B    y
2   3    C    z
3   4    D    x
4   5    E    y