#pandas
#pandas
Вопрос:
Рассмотрим массив
a = np.array([5, 12, 56, 36])
и фрейм данных pandas
b = pandas.DataFrame(np.array([1, 3, 0, 3, 1, 0, 2])
как заменить значения на b
, используя его значения в качестве индексов для a
, т.Е. Предполагаемое значение:
c = pandas.DataFrame([12, 36, 5, 36, 12, 5, 56])
Не могу понять это.
Ответ №1:
Один из способов — использовать apply,
c = b.apply(lambda x: a[x])
Или путем индексации массива numpy и передачи значений в DataFrame,
c = pd.DataFrame(a[b[0].values])
0
0 12
1 36
2 5
3 36
4 12
5 5
6 56
Комментарии:
1.
pd.DataFrame(a[b.values])
Ответ №2:
Давайте попробуем что-нибудь другое Series.get
pd.Series(a).get(b[0])
Out[57]:
1 12
3 36
0 5
3 36
1 12
0 5
2 56
dtype: int32
Ответ №3:
можно использовать карту.
b.a.map({i:j for i,j in enumerate(a)})
0 12
1 36
2 5
3 36
4 12
5 5
6 56
Name: a, dtype: int64