Pandas Dataframe добавляет одну строку за раз в CSV - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь отправить фрейм данных pandas в CSV-файл

import pandas as pd
import os

case_array = [['2017042724', '05/18/2017'], ['2017042723', '05/18/2017'], ['2017042722', '05/18/2017'], ['2017042721', '05/18/2017']]

filename = 'case_array.csv'
path = "C:\shares\folder"
fullpath = os.path.join(path, filename)

for case_row in case_array:
    df = pd.DataFrame(case_row)
    try:
        with open(fullpath, 'w+') as f:
            df.to_csv(f, header=False)
            print('Success')
    except:
        print('Unable to Write CSV')

try:
    df = pd.read_csv(fullpath)
    print(df)
except:
    print('Unable to Read CSV')

, но он вставляет каждую строку в виде столбца, вставляет столбец заголовка (был установлен в False) и перезаписывает предыдущую вставку:

0  2017042721
1  05/18/2017

Если я вставлю весь массив, он вставит строки без строки заголовка.(Это правильный результат, который я хочу) Проблема заключается в сценарии, который я пишу, мне нужно вставлять каждую строку за раз.

Как получить pandas dataframe для вставки строки вместо столбца?

edit1

, например:

 0            1
 2017042721  05/18/2017
 2017042723  05/18/2017

1 Ответ

0 голосов
/ 18 мая 2018

Вам не нужно перебирать массив для этого.Вы можете сделать массив данных из массива и записать его в CSV, используя to_csv () .

case_array = [['2017042724', '05/18/2017'], ['2017042723', '05/18/2017'], ['2017042722', '05/18/2017'], ['2017042721', '05/18/2017']]

df=pd.DataFrame(case_array)
df.to_csv(fullpath, header=False)

РЕДАКТИРОВАТЬ

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

for case_row in case_array:
    df = pd.DataFrame(case_row).T
    try:
        with open(fullpath, 'a') as f:
            df.to_csv(f, header=False, index=False)
            print('Success')
    except:
        print('Unable to Write CSV')
...