Pixi.js 4.x маски

В вашем вопросе есть немного двусмысленности. Существует не менее трех двух интерпретаций:

  1. клавиши в di относятся к значениям индекса
  2. , клавиши в di относятся к df['col1'] значениям
  3. ключи в di относятся к местоположению индексов (а не к вопросу OP, но выбрасываются для удовольствия.)

Ниже приведено решение для каждого случая.


Случай 1: Если клавиши di предназначены для обозначения значений индекса, вы можете использовать метод update:

df['col1'].update(pd.Series(di))

Например,

import pandas as pd
import numpy as np

df = pd.DataFrame({'col1':['w', 10, 20],
                   'col2': ['a', 30, np.nan]},
                  index=[1,2,0])
#   col1 col2
# 1    w    a
# 2   10   30
# 0   20  NaN

di = {0: "A", 2: "B"}

# The value at the 0-index is mapped to 'A', the value at the 2-index is mapped to 'B'
df['col1'].update(pd.Series(di))
print(df)

дает

  col1 col2
1    w    a
2    B   30
0    A  NaN

Я изменил значения из вашего исходного сообщения, чтобы было ясно, что делает update. Обратите внимание, что ключи из di связаны с значениями индекса. Порядок значений индекса, т. Е. Индекс местоположения - не имеет значения.


Случай 2: Если клавиши в di относятся к df['col1'], то @DanAllan и @DSM показывают, как достичь этого с помощью replace:

import pandas as pd
import numpy as np

df = pd.DataFrame({'col1':['w', 10, 20],
                   'col2': ['a', 30, np.nan]},
                  index=[1,2,0])
print(df)
#   col1 col2
# 1    w    a
# 2   10   30
# 0   20  NaN

di = {10: "A", 20: "B"}

# The values 10 and 20 are replaced by 'A' and 'B'
df['col1'].replace(di, inplace=True)
print(df)

дает

  col1 col2
1    w    a
2    A   30
0    B  NaN

Обратите внимание, как в этом случае клавиши в di были изменены в соответствии с значениями в df['col1'].


Случай 3: Если клавиши в di относятся к местоположениям индекса, вы можете использовать

df['col1'].put(di.keys(), di.values())

, поскольку

df = pd.DataFrame({'col1':['w', 10, 20],
                   'col2': ['a', 30, np.nan]},
                  index=[1,2,0])
di = {0: "A", 2: "B"}

# The values at the 0 and 2 index locations are replaced by 'A' and 'B'
df['col1'].put(di.keys(), di.values())
print(df)

дает

  col1 col2
1    A    a
2   10   30
0    B  NaN

Здесь первая и третья строки были изменены, поскольку клавиши в di являются 0 ] и 2, которые с индексом на основе индекса Python относятся к первому и третьему местоположениям.

0
задан MustSeeMelons 5 March 2019 в 17:02
поделиться