# 获取最大分隔的分隔符分隔的数组;注意item是个string
def split_comparison(item):
list_splitor = []
list_str_splitor = ["len(item.split(','))","len(item.split('、'))","len(item.split(';'))","len(item.split(','))","len(item.split(';'))"]
for i in list_str_splitor:
list_splitor.append(eval(i))
greatest_index = list_splitor.index(max(list_splitor))
remove_outer_function = list_str_splitor[greatest_index].split("len")[1][1:-1]
list_greatest = eval(remove_outer_function)
return list_greatest
# regex针对df某一列的取反集;
# 其中regex_xhgg_data中包含的是各种需要踢掉的string pattern; ge_data都是待处理的df数据表。
for index, row in regex_xhgg_data.iterrows():
ge_data_0 = ge_data_0[~ge_data_0['xhgg'].apply(lambda k: True if re.search(row[0], k) else False) ]
ge_data_1 = ge_data_1[~ge_data_1['xhgg'].apply(lambda k: True if re.search(row[0], k) else False) ]
# 修复sqlalchemy用to_sql出duplicate entries
from sqlalchemy import create_engine
from sqlalchemy.dialects.mysql import insert
def insert_on_duplicate(table, conn, keys, data_iter):
insert_stmt = insert(table.table).values(list(data_iter))
on_duplicate_key_stmt = insert_stmt.on_duplicate_key_update(insert_stmt.inserted)
conn.execute(on_duplicate_key_stmt)
target_table = "kvs_table"
engine = create_engine('mysql+pymysql://root:[email protected]:3306/ppt')
# 注意method用法
ge_data_0.to_sql(target_table,engine,chunksize=10000,index=False, if_exists='append',method=insert_on_duplicate)
[悪い書き方] 最も離れた区切り文字で区切られた配列を取得します; 正規表現は df の特定の列の否定セットです; sqlalchemy を修正し、to_sql を使用して重複エントリを生成します
おすすめ
転載: blog.csdn.net/u011410413/article/details/128292589
ランキング