csv_update.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import pandas as pd
  2. from functools import reduce
  3. source_csv = 'data\\Kontenrahmen_Import.csv'
  4. target_csv = 'data\\Kontenrahmen.csv'
  5. result_csv = 'data\\Kontenrahmen_Ergebnis.csv'
  6. debug = False
  7. cols_pkey = ['Konto_Nr']
  8. def update(d, other):
  9. d.update(dict(dict(other)))
  10. return d
  11. def get_dict(cols, type):
  12. return dict(dict(zip(cols, [type] * len(cols))))
  13. # cols_dict = reduce(update, (get_dict(cols_pkey, np.str), get_dict(cols_str, np.str), get_dict(cols_float, np.float)), {})
  14. df_source = pd.read_csv(source_csv, decimal=",", sep=";", encoding="ansi", converters={i: str for i in range(0, 200)})
  15. df_source['pkey'] = reduce(lambda x, y: x + "_" + df_source[y], cols_pkey, "")
  16. df_source = df_source.set_index('pkey')
  17. df_target = pd.read_csv(target_csv, decimal=",", sep=";", encoding="ansi", converters={i: str for i in range(0, 200)})
  18. target_columns = df_target.columns
  19. df_target['pkey'] = reduce(lambda x, y: x + "_" + df_target[y], cols_pkey, "")
  20. df_target = df_target.set_index('pkey')
  21. df_join = df_source.join(df_target, rsuffix='_other')[target_columns]
  22. # df_result = df_join[(df_join['Gesamt'] != 0) & (df_join['Serviceberater'] != "")]
  23. df_join.to_csv(result_csv, decimal=",", sep=";", encoding="ansi", index=None)