Mar-14-2019, 04:45 AM
Pages: 1 2
Mar-14-2019, 11:40 AM
There may be an item or two that needs tweaking, (need to eliminate None items) but it's very close:
import csv from itertools import groupby,chain from operator import itemgetter import os facilities = { 'Facility1': ["club_house", "gymnasium", "children’s_play_area", "24/7_water_supply", "power_back-up", "inter-com","lift"], 'Facility2': ["jogging_track", "swimming_pool", "aerobics_center", "badminton_court", "basketball_court", "beach_volleyball_court", "football_court", "golf_course", "lawn_tennis_court","yoga/meditation_center"], 'Facility3': ["crèche", "ATM", "car_wash_area", "community_hall", "banquet_hall", "garbage_disposal", "grocery_shop","library"], 'Facility4': ["fountains","landscape_gardens"], 'Facility5': ["gated_society"], 'Facility6': ["car_parking"], 'Facility7': ["CCTV_cameras"], 'Facility8': ["security_guards"], 'Facility9': ["pool_table", "carrom_room", "chess_room", "dart_board", "squash_court", "table_tennis_room", "skating_rink"] } def main(): # Make sure in src directory to start os.chdir(os.path.abspath(os.path.dirname(__file__))) save_id = None outvals = [] with open("facility_data.csv", encoding="ISO-8859-1") as fp, open('new_facilities.csv', 'w') as fo: crdr = csv.reader(fp, delimiter=',') for row in crdr: id = row[0] if save_id == None: save_id = id rvalue = row[1] if id != save_id: if save_id is not None: if len(outvals): outstr = ','.join(outvals) outstr = f'{save_id},{outstr}' else: outstr = f'{save_id},None' fo.write(f'{outstr}\n,,\n') outvals = [] save_id = id for facid, values in facilities.items(): if rvalue in values: outvals.append(f'{rvalue}-{facid}') if __name__ == '__main__': main()partial results:
Output:xid,None
,,
R3,swimming_pool-Facility2,gymnasium-Facility1
,,
R5,swimming_pool-Facility2,gymnasium-Facility1
,,
R6,swimming_pool-Facility2,gymnasium-Facility1
,,
R9,swimming_pool-Facility2,gymnasium-Facility1
,,
R10,swimming_pool-Facility2,gymnasium-Facility1
,,
R703,swimming_pool-Facility2,gymnasium-Facility1
,,
R17,swimming_pool-Facility2,gymnasium-Facility1
,,
R18,swimming_pool-Facility2,gymnasium-Facility1
,,
R20,swimming_pool-Facility2,gymnasium-Facility1
,,
R23,swimming_pool-Facility2,golf_course-Facility2
,,
R26,swimming_pool-Facility2,gymnasium-Facility1
,,
Pages: 1 2