1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import pandas as pd
- from py2neo import Graph
- from py2neo import NodeMatcher, RelationshipMatcher
- from py2neo import Node, Relationship
- from py2neo.matching import NodeMatcher
- # Neo4j connection settings
- NEO4J_URL = "bolt://cmm.ai:7687"
- NEO4J_USERNAME = "neo4j"
- NEO4J_PASSWORD = "chuz8310xsystex"
- # Initialize the Neo4j graph database connection
- graph = Graph(NEO4J_URL, auth=(NEO4J_USERNAME, NEO4J_PASSWORD))
- import pandas as pd
- sheet_id ="1ltqF8KfHYin90SFfLnaTATZyLVqjJgbEJmszyV6_2JE"
- gid = "1280923991"
- df = pd.read_csv(f"https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv&gid={gid}")
- import pandas as pd
- sheet_id ="1ltqF8KfHYin90SFfLnaTATZyLVqjJgbEJmszyV6_2JE"
- gid = "168214340"
- df = pd.read_csv(f"https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv&gid={gid}")
- def get_property_text(row):
- # df_property = df.iloc[:, 3:]
- properties = {k: v for k, v in row[3:].items() if pd.notna(v)}
- properties["id"] = row['Node']
- property_list = []
- for k, v in properties.items():
- property_list.append(f"{k.strip().replace(' ', '_')}: '{v}'")
- property_text = f"{{{', '.join(property_list)}}}"
- # records = df_property.apply(lambda row: {k: v for k, v in row.items() if pd.notna(v)}, axis=1).tolist()
- # df['properties'] = properties
- return property_text
- def get_label_text(row):
- if pd.notna(row['label list']):
- labels = ":__Entity__:" + row['label list'].replace(" ","").replace(",", ":")
- else:
- labels = ":__Entity__"
- return labels
- def create_query_for_each_row(row):
- # (`溫室氣體`:定義 {id: "溫室氣體"}),
- node = row['Node']
- labels = get_label_text(row)
- property = get_property_text(row)
- query = f'(`{node}`{labels} {property})'
- return query
- # print("The Node is %s" % row["Node"])
-
- def bulk_create_query():
- sheet_id ="1ltqF8KfHYin90SFfLnaTATZyLVqjJgbEJmszyV6_2JE"
- gid = "1280923991"
- df = pd.read_csv(f"https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv&gid={gid}")
- query = df.apply(create_query_for_each_row, axis = 1).to_list()
- create_query = "CREATE\n" + ',\n'.join(query)
- return create_query
- def create_node():
- query = bulk_create_query()
- graph.run(query)
|