#python #python-3.x #pandas #dataframe
Вопрос:
Эй, у меня есть фрейм данных, в котором значения столбца Values
являются списками, где каждый список содержит строки с 3 символами. Для values
от values_list
я хочу заменить последний символ на «I» в каждом списке в Values
столбце. Это мой текущий код:
for i in range(len(data["Values"])): for k in range(len(data.iloc[i]["Values"])): if data.iloc[i]["Values"][k] in values_list: data.iloc[i]["Values"][k] = data.iloc[i]["Values"][k][:2] "I"
Как я могу переписать его более правильным образом?
Комментарии:
1. можете ли вы указать заголовок ваших данных
Ответ №1:
Не совсем понятно, что вы пытаетесь сделать, но я думаю, что вы это имеете в виду.
Вы можете определить функцию, а затем использовать .map()
ее в этом столбце:
import pandas as pd data = pd.DataFrame({'Values':[['aaa','bbb','ccc'], ['ddd','eee','fff']]}) print(data) values_list = ['aaa', 'ccc', 'eee'] def subI(value_list): value_list = [x[:-1] 'I' if x in values_list else x for x in value_list] return value_list data['Values'] = data['Values'].map(subI) print(data)
Выход:
print(data) Values 0 [aaa, bbb, ccc] 1 [ddd, eee, fff] Values 0 [aaI, bbb, ccI] 1 [ddd, eeI, fff]