добавление новых столбцов в CSV-файл с использованием панд и dataframe - PullRequest
0 голосов
/ 02 мая 2019

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

df = pd.read_csv(sys.argv[1], na_values = ['no info', '.'], encoding='Cp1252', delimiter=';')
f=pd.DataFrame(d_filtered_words).T.reset_index()
f.columns=['id','filtered_words']
df=pd.concat([df,f],axis=1)
df.to_csv('result.csv', sep=';', encoding='Cp1252')

df = pd.read_csv('result.csv', na_values = ['no info', '.'], encoding='Cp1252', delimiter=';')
s=pd.DataFrame(d_score).T.reset_index()
s.columns=['id','ScorePos','Scoreneg','Scoreneu']
df=pd.concat([df,s],axis=1)
df.to_csv('result2.csv', sep=';', encoding='Cp1252')

входной файл выглядит так (он слишком длинный,я просто пишу пример:

numero;nom
1;marie
2;noemie

ожидаемый результат

numero;nom;id;filtered_words;id;ScorePos;Scoreneg;Scoreneu
1;marie;1;marie;1;25;58;569
2;noemie;2;noemie;56;789;25

ошибка в коде:

значения в Dico не совпадают, но это "нормальноони содержат разные числа слов, я не могу их изменить, данные такие

    s=pd.DataFrame(d_filtered_words).T.reset_index()
  File "C:\Users\Em\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 348, in __init__
    mgr = self._init_dict(data, index, columns, dtype=dtype)
  File "C:\Users\Em\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 459, in _init_dict
    return _arrays_to_mgr(arrays, data_names, index, columns, dtype=dtype)
  File "C:\Users\Em\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 7356, in _arrays_to_mgr
    index = extract_index(arrays)
  File "C:\Users\Em\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 7402, in extract_index
    raise ValueError('arrays must all be same length')
ValueError: arrays must all be same length

...