2015-10-01 3 views
1

У меня есть кадр данных, df:Извлечение строки из ячейки в панде dataframe

  Filename   Weight 
0 '\file path\file.txt' NaN 
1 '\file path\file.txt' NaN 
2 '\file path\file.txt' NaN 

и у меня есть функция, где я ввод имя файла и извлекает значение с плавающей точкой для меня из файла. Я хочу вызвать путь к файлу от Filename из каждой строки в df в мою функцию, а затем вывести данные в столбец Weight. Мой текущий код:

df['Weight'] = df['Weight'].apply(x_wgt_pct(df['filename'].to_string()), axis = 1) 

Моя ошибка: это

pandas\parser.pyx in pandas.parser.TextReader.__cinit__ (pandas\parser.c:3173)() 

pandas\parser.pyx in pandas.parser.TextReader._setup_parser_source (pandas\parser.c:5912)() 

IOError: File 0  file0.txt 
1  file1.txt 
2  file2.txt 
3  file3.txt does not exist 

Не уверен, является ли эта ошибка Ьс она призывает все пути к файлам одновременно как строка или я не ввести путь к файлу правильно ,

ответ

1

to_string создает строку из столбца, который не то, что вы хотите:

In [11]: df['Filename'].to_string() 
Out[11]: "0 '\\file path\\file.txt'\n1 '\\file path\\file.txt'\n2 '\\file path\\file.txt'" 

Предполагая, что x_wgt_pct функция, которая принимает FilePath и возвращает поплавок ... вы можете цикл по записям :

for i, f in enumerate(df["Filename"]): 
    weight = x_wgt_pct(f) # Note: you may have to slice off the 's i.e. f[1:-1] 
    df.ix[i, "Weight"] = weight 

Примечание: необходимо иметь дополнительную осторожность, если у вас есть повторяющиеся индексы строк.

+0

Именно то, что я искал! – robahall

Смежные вопросы