Добавить список в виде строк пустого фрейма данных

Если мы используем Java 7 и выше, а также знаем, какой контент будет добавлен (добавлен) в файл, мы можем использовать метод newBufferedWriter в пакете NIO.

public static void main(String[] args) {
    Path FILE_PATH = Paths.get("C:/temp", "temp.txt");
    String text = "\n Welcome to Java 8";

    //Writing to the file temp.txt
    try (BufferedWriter writer = Files.newBufferedWriter(FILE_PATH, StandardCharsets.UTF_8, StandardOpenOption.APPEND)) {
        writer.write(text);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Есть несколько замечаний:

  1. Всегда хорошая привычка указывать кодировку кодировки и для этого мы имеем константу в классе StandardCharsets.
  2. В коде используется инструкция try-with-resource, в которой ресурсы автоматически закрываются после попытки.

Хотя OP не спросил, но на всякий случай мы хотим искать строки с определенным ключевым словом, например confidential мы можем использовать потоковые API в Java:

//Reading from the file the first line which contains word "confidential"
try {
    Stream lines = Files.lines(FILE_PATH);
    Optional containsJava = lines.filter(l->l.contains("confidential")).findFirst();
    if(containsJava.isPresent()){
        System.out.println(containsJava.get());
    }
} catch (IOException e) {
    e.printStackTrace();
}

-1
задан p.strain 1 March 2019 в 16:33
поделиться

3 ответа

Вы можете исправить свой код, изменив:

 empty_df.append(new)

на:

 empty_df = empty_df.append(new)

, но я не думаю, что вам следует это делать. Вам было бы намного проще скопировать весь фрейм данных с помощью

 empty_df = data.copy()
0
ответ дан Polkaguy6000 1 March 2019 в 16:33
поделиться

Для изменения столбца предположим, что имя столбца, в котором хранится имя изображения, равно imageName, а значение переменной ran.

new_df = data.loc[data['imageName'] == ran ] #if ran is a variable
0
ответ дан anand_v.singh 1 March 2019 в 16:33
поделиться

Я считаю, что все, что вы делаете, можно упростить, отфильтровав новый DF на основе ran

empty_df = data[data.iloc[:,0] == ran]
empty_df.head()
Output:
    0   1   2   3   4   5
0   image1.png  1023    554 1126    646 nucleus
1   image1.png  1023    554 116 646 nucleus
2   image1.png  103 544 1126    6   nucleus
3   image1.png  10  354 1556    56  nucleus
4   image1.png  13  55  1216    46  nucleus
.
0
ответ дан Terry 1 March 2019 в 16:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: