csv_update.py 1.2 KB

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