Я хочу создать новый столбец, который читает имя файла из столбца: df ['Filename'] применяет np.genfromtext, а затем помещает результирующий массив в новый столбец под названием Scan.
d = {'Filename':['G924310X.txt','G924330X.txt','G924340X.txt'],
'Longitude':[92.4,92.4,92.4],
'Latitude':[-31.0,-33.0,-34.0]}
df = pd.DataFrame(data = d)
def f(x):
return np.genfromtxt(x , delimiter=', ')
df['Scan'] = df.apply(lambda x: f(df['Filename']), axis = 1)
Я получаю эту ошибку, TypeError: ("Невозможно преобразовать объект" байты "в str неявно", "произошел с индексом 0")
Есть ли способ сделать это?
Я считаю, вы должны изменить
df['Scan'] = df.apply(lambda x: f(df['Filename']), axis = 1)
за
df['Scan'] = df.apply(lambda x: f(x['Filename'].item()), axis = 1)
Или, может быть
df['Scan'] = df.Filename.apply(f, axis = 1)
В противном случае apply
всегда будет вызывать функцию со всей вашей серией для каждой строки. Функция .item()
только выдает уникальный элемент в серии.
df['Scan'] = df['Filename'].apply(f)