python pandas 如何复制有关索引列的列值

标签 python pandas

注意:该问题已被编辑和扩展,因为它最初缺乏精确性。 第一个示例介绍了问题,但仅应视为介绍

有两个数据集,如下所示:

idx  value other_columns  
1    7  
2    6  
3    5  

idx  value ...other_columns  
1    0  
2    0  
4    0  

我想复制有关索引列的第一个数据集值(并在不匹配的列上设置 NaN)

获取:

idx  value ...other_columns  
1    7  
2    6  
4    NaN

问候

编辑:

关于我最初的帖子,EdChum 的回答是正确的,但我的问题缺乏精确性。

other_columns 意味着我想保持其他列不变,我的目标是将 dataset1 中的值插入 dataset2 中。 更精确的示例:

df1= pd.DataFrame({'idx':[1,2,3], 'val':[7,6,5], 'other':[1,1,1]})  
df2= pd.DataFrame({'idx':[1,2,4], 'val':[0,0,0], 'other':[1,1,1]})  

 df1  
   idx  other val  
0    1      1   7  
1    2      1   6  
2    3      1   5  

 df2  
   idx  other  val  
0    1      7    0  
1    2      7    0  
2    4      7    0  

我想检索

   idx  other  val  
0    1      7    7  
1    2      7    6  
2    4      7    NaN  

这是 Fuego 基于合并的 anwser 的子框架,但我还不知道如何只保留 ['idx','val_x','other_y'] 列。

最佳答案

使用重新索引

In [142]:
df1.reindex(df2.index)

Out[142]:
     value  other_columns
idx                      
1      7.0            NaN
2      6.0            NaN
4      NaN            NaN

reindex_like 也有效:

In [143]:
df1.reindex_like(df2)

Out[143]:
     value  ...other_columns
idx                         
1      7.0               NaN
2      6.0               NaN
4      NaN               NaN

或者使用loc基于标签的索引:

In [144]:
df1.loc[df2.index]

Out[144]:
     value  other_columns
idx                      
1      7.0            NaN
2      6.0            NaN
4      NaN            NaN

如果idx确实是一列,那么您需要首先调用set_index,然后记录以上任何内容:

In [148]:
df1.set_index('idx').reindex(df2.set_index('idx').index).reset_index()

Out[148]:
   idx  value  other_columns
0    1    7.0            NaN
1    2    6.0            NaN
2    4    NaN            NaN

关于python pandas 如何复制有关索引列的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41260764/

相关文章:

python - 用于附加和创建 pandas 数据帧的快速 numpy 数组结构

python - Pandas:将输入向量扩展/映射到 N 个输出

php - Python 服务器页面实现

python - 随机分割数据以用于该函数的训练和测试

python - Plotly 上 Pandas 数据库的 3D 散点类型错误

python - Pandas DataFrame 按两列分组并获得第一个和最后一个

python - 将 Pandas DataFrame 中的连续列转换为相应的行

python - 来自日期时间索引组循环的 Pandas 计算列

python - 使用 Python ElementTree 在 XML 中查找和编辑子元素

python - Keras flow_from_dataframe 给出 0 个图像