You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

data_prep.py 1.2 kB

3 years ago
1234567891011121314151617181920212223242526272829303132333435363738
  1. import os
  2. import argparse
  3. import pandas as pd
  4. from sklearn.model_selection import train_test_split
  5. import logging
  6. logger = logging.getLogger(__name__)
  7. def main():
  8. """Main function of the script."""
  9. # input and output arguments
  10. parser = argparse.ArgumentParser()
  11. parser.add_argument("--data", type=str, help="path to input data")
  12. parser.add_argument("--test_train_ratio", type=float, required=False, default=0.25)
  13. parser.add_argument("--train_data", type=str, help="path to train data")
  14. parser.add_argument("--test_data", type=str, help="path to test data")
  15. args = parser.parse_args()
  16. logger.info(" ".join(f"{k}={v}" for k, v in vars(args).items()))
  17. data_path = os.path.join(args.data, "data.csv")
  18. df = pd.read_csv(data_path)
  19. train_df, test_df = train_test_split(
  20. df,
  21. test_size=args.test_train_ratio,
  22. )
  23. # output paths are mounted as folder, therefore, we are adding a filename to the path
  24. train_df.to_csv(os.path.join(args.train_data, "data.csv"), index=False)
  25. test_df.to_csv(os.path.join(args.test_data, "data.csv"), index=False)
  26. if __name__ == "__main__":
  27. main()