Python Pandas загрузить CSV не загружается полный CSV - PullRequest
0 голосов
/ 18 февраля 2020

Работа над проектом, который создает отчет в формате PDF из набора метаданных CSV, экспортированных из Davinci Resolve.

Программа запускает и генерирует отчет, но отсутствуют некоторые столбцы, я не могу понять, что это происходит. Я передал атрибут usecols со столбцами, которые я хочу, но он все еще пропускает некоторые.

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

Я бы хотел, чтобы в отчете PDF содержались столбцы в порядке, указанном мной в разделе протоколов в коде примера. пример csv:

https://www.dropbox.com/s/jsup7f5qrfnqc7e/A003.csv?dl=0

В проекте используются pandas, jinja2 и weasyprint

print(sourcefile, outfile)

df = pd.read_csv(sourcefile,
    encoding="utf-16",
    usecols=['File Name', 'Camera #', 'Resolution', 'Duration TC', 'Video Codec', 'Camera FPS', 'Comments'],
    dtype={"File Name": str,
        "Camera #": str,
        "Resolution": str,
        "Duration TC": str,
        "Video Codec": str,
        "Camera FPS": float,
        "Comments": str,
        'Date Modified': str,
        'Date Recorded': str
        },
    na_values=['.', '??', ' ']  # Take any '.' or '??' values as NA
)

env = Environment(loader=FileSystemLoader('.'))
template = env.get_template("report_template.html")

template_vars = {"title": title,
                    "data": df.to_html(),
                    "date": self.date,
                    }

html_output = template.render(template_vars)
HTML(string=html_output).write_pdf(outfile)

df.head () выводит следующее :

                  File Name  Duration TC   Resolution        Video Codec Comments Camera #  Camera FPS
0  A003C001_191024_R48G.mov  00:01:21:08  3200 x 1800  Apple ProRes 4444     PASS        A     50000.0
1  A003C002_191024_R48G.mov  00:01:04:20  3200 x 1800  Apple ProRes 4444     PASS        A     50000.0
2  A003C003_191024_R48G.mov  00:01:16:14  3200 x 1800  Apple ProRes 4444     PASS        A     50000.0
3  A003C004_191024_R48G.mov  00:01:16:08  3200 x 1800  Apple ProRes 4444     PASS        A     50000.0
4  A003C005_191024_R48G.mov  00:02:30:04  3200 x 1800  Apple ProRes 4444     PASS        A     50000.0

пример вывода ниже:

enter image description here

1 Ответ

0 голосов
/ 18 февраля 2020

Предупреждение:

Это не полный ответ. Этот ответ направлен на просьбу показать переупорядочение столбцов более подробно из комментария к вопросу ОП.

Исходные данные:

File Name,Duration TC,Resolution,Video Codec,Comments,Camera #,Camera FPS
A003C001_191024_R48G.mov,00:01:21:08,3200 x 1800,Apple ProRes 4444,PASS,A,50000.0
A003C002_191024_R48G.mov,00:01:04:20,3200 x 1800,Apple ProRes 4444,PASS,A,50000.0
A003C003_191024_R48G.mov,00:01:16:14,3200 x 1800,Apple ProRes 4444,PASS,A,50000.0
A003C004_191024_R48G.mov,00:01:16:08,3200 x 1800,Apple ProRes 4444,PASS,A,50000.0
A003C005_191024_R48G.mov,00:02:30:04,3200 x 1800,Apple ProRes 4444,PASS,A,50000.0

Пример кода :

В этом примере кода показано, как переупорядочить столбцы DataFrame с использованием техники фильтрации в соответствии с требованиями пользователя.

import pandas as pd

# Define column order.
col_order = ['File Name', 'Camera #', 'Resolution', 'Duration TC', 
             'Video Codec', 'Camera FPS', 'Comments']
# Read CSV file.
df = pd.read_csv('./cameradata.csv')
# Use column name filter to re-order columns.
df = df[col_order]
# Show results.
print(df)

Вывод:

                  File Name Camera #   Resolution  Duration TC  \
0  A003C001_191024_R48G.mov        A  3200 x 1800  00:01:21:08   
1  A003C002_191024_R48G.mov        A  3200 x 1800  00:01:04:20   
2  A003C003_191024_R48G.mov        A  3200 x 1800  00:01:16:14   
3  A003C004_191024_R48G.mov        A  3200 x 1800  00:01:16:08   
4  A003C005_191024_R48G.mov        A  3200 x 1800  00:02:30:04   

         Video Codec  Camera FPS Comments  
0  Apple ProRes 4444     50000.0     PASS  
1  Apple ProRes 4444     50000.0     PASS  
2  Apple ProRes 4444     50000.0     PASS  
3  Apple ProRes 4444     50000.0     PASS  
4  Apple ProRes 4444     50000.0     PASS  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...