【问题标题】:Pandas dataframe assignment by pair of (row,column) values通过一对(行,列)值分配熊猫数据框
【发布时间】:2021-02-16 14:55:24
【问题描述】:

我知道使用 pandas 查找我可以使用成对的(行、列)值来选择特定的数据框单元格。例如

frame = pd.DataFrame([[1,2,3],[4,5,6]])
frame.lookup([0,1],[1,2])

给我

array([2, 6], dtype=int64)

有没有类似的方法给单元格赋值?我正在寻找这样的东西:

伪代码:

frame.lookup([0,1],[1,2]) = [7,8]

【问题讨论】:

  • 不,Pandas 不支持开箱即用的高级索引。甚至 lookup 在 1.2.0 版本中也是 deprecated

标签: python pandas variable-assignment lookup


【解决方案1】:

我不知道任何 Pandas 解决方案。 但如果我必须自己做 - 下面的代码应该可以工作。

frame = pd.DataFrame([[1,2,3],[4,5,6]])
#    0  1  2
# 0  1  2  3
# 1  4  5  6

frame.lookup([0,1],[1,2])
# array([2, 6])

def set_dataframe_values(dataframe, coords, values):
        dataframe_ = pd.DataFrame(dataframe)
        for x__y, value in zip(coords, values):
            x, y = x__y
            dataframe_[y][x] = value
        return dataframe_
   
set_dataframe_values(frame, coords=[(0,1), (1,2)], values=[7,8])
#    0  1  2
# 0  1  7  3
# 1  4  5  8

frame.lookup([0,1],[1,2])
# array([7, 8])

【讨论】:

    猜你喜欢
    • 2019-05-21
    • 2020-07-07
    • 2016-09-16
    • 1970-01-01
    • 2019-01-05
    • 2020-04-13
    • 2019-09-30
    • 2020-12-11
    相关资源
    最近更新 更多