Я хочу превратить мой .csv-файл с непонятными значениями под каждым заголовком столбца в .csv с разными значениями под каждым заголовком столбца (просто хочу знать все уникальные значения для каждого столбца огромного .csv-файла ). Пример:
Мой исходный .csv-файл виден (слева), который в Excel отображается как (см. Справа):
A,B,C,D A B C D
1,CEN,T2,56 1 CEN T2 56
2,DECEN,T3,45 2 DECEN T3 45
1,ONBEK,T2,84 1 ONBEK T2 84
1,CEN,T1,59 1 CEN T1 59
2,CEN,T1,87 2 CEN T1 87
, где A, B, C и D являются заголовками столбцов с каждыми 5 значениями ниже.
Мой предпочтительный выходной файл .csv должен выглядеть следующим образом (см. слева, справа при открытии в Excel):
A,B,C,D A B C D
1,CEN,T2,56 1 CEN T2 56
2,DECEN,T3,45 2 DECEN T3 45
,ONBEK,T1,84 ONBEK T1 84
,,,59 59
,,,87 87
где A, B , C и D - заголовки столбцов, а под ними - только отдельные значения для каждого столбца из исходного .csv-файла.
Я попытался использовать Pandas dataframe для выполнения этой задачи, однако я не надеваю мне не удается получить предпочтительный результат (я застрял при объединении уникальных кадров данных каждого столбца, поскольку они имеют разную длину).
См. код ниже:
import pandas as pd
df = pd.read_csv(csv_file, encoding='utf-8') #read .csv in pandas dataframe
columnnames = list(df.columns)
print(columnnames)
df2 = pd.DataFrame()
for col in df:
result = df[col].unique() #creates a list with distinct values
print(result)
output = pd.DataFrame(result) #to transform the distinct list back into a dataframe
print(output)
df2.append(output) #tries to merge all the lists with unique values from the loop into the new dataframe df2
df2.columns = columnnames
print(df2)
df2.to_csv("c_" + csv_file, sep=',') #write pandas dataframe to .csv
Кто угодно Любые идеи? Поскольку я ищу разные значения в каждом столбце, каждый столбец может иметь разную длину. Предпочтительно эти ячейки после последней отдельной ячейки пусты (см. Предпочтительный вывод). Если это невозможно, их всегда можно заполнить 'NaN' или 'NULL', если необходимо.