使用dataframe拆分資料庫

2021-09-12 23:02:55 字數 2194 閱讀 2967

最近在做資料採集過程中,有一些資料採集下來之後是用逗號分割開的,需要拆分成兩條,類似:

idlocation

university

degree_name

programme_en

url25564

perth,albany

western australia

master of curatorial studies

curatorial studies in fine arts

這是一所學校的乙個專業但是location中有兩個值,所以需要拆分為兩條,但在採集過程中沒有完成拆分,需要用python指令碼進行拆分。具體**如下:

import numpy as np

import pandas as pd

import pymysql

from sqlalchemy import create_engine

conn = pymysql.connect(host=

'localhost'

,port =

3306

,user=

'root'

,passwd=

'123456'

,db =

'major_test'

,charset=

'utf8'

)#將資料表的dataframe轉換為拆分後的dataframe

deftidy_split

(df,column,sep=

',')

: indexes =

new_values =

for i,presplit in

enumerate

(df[column]

.astype(

str)):

values = presplit.split(sep)

for value in values:

value = value.strip(

) new_df = df.iloc[indexes,:]

.copy(

) new_df[column]

= new_values

new_df.index =

[i for i in

range

(new_df.shape[0]

)]return new_df

#將資料庫轉化為dataframe格式

defread_table

(cur,sql_order)

:try

: cur.execute(sql_order)

data = cur.fetchall(

) col_result = cur.description

columns =

for i in

range

(len

(col_result)):

[0])

frame = pd.dataframe(

list

(data)

,columns=columns)

except exception as e:

frame = pd.dataframe(

)return frame

#執行方法,可修改column和sep引數,疊加修改可以修改engine,column和sep引數並且修改生成的新錶名稱

defmain()

: cur = conn.cursor(

) sql_order =

'select * from tmp_school_uk_yuke_xinzeng'

result = read_table(cur, sql_order)

new_result = tidy_split(result, column=

'location'

, sep=

',')

engine = create_engine(

'mysql+pymysql:'

) new_result.to_sql(

'tmp_ok'

, engine)

conn.commit(

)if __name__ ==

'__main__'

: main(

)

分數拆分(C )

描述 現在輸入乙個正整數k,找到所有的正整數x y,使得1 k 1 x 1 y.輸入 第一行輸入乙個整數n,代表有n組測試資料。接下來n行每行輸入乙個正整數k 輸出 按順序輸出對應每行的k找到所有滿足條件1 k 1 x 1 y的組合 樣例輸入 2 2 12樣例輸出 1 2 1 6 1 3 1 2 1...

分數的拆分原理和方法 分數的拆分 單位分數

閱讀材料 滬教版六年級第一學期 將乙個分數拆為幾個不同的單位分數之和 三千年前,埃及人發明了一種書寫分數的方法,這些分數的分子為1,它們被稱為單位分數,為了方便書寫和記憶,它們將太陽神眼睛的各個部分設定為特殊的分數值,其起源與司豐饒女神 知識與魔法之神 太陽神等神化相聯絡.1 將乙個單位分數拆分成2...

生成函式 拆分數計算

計算整數n的拆分數用的是生成函式的方法。首先來看一下生成函式所解決的問題 1 x x n 1 x x n 1 x x n 這個母函式可以這樣理解 轉化為經典的 不可區分球 放 可區分盒 中的問題 每乙個括號表示乙個盒內放的球的情況 在計算拆分數時需要用乙個ferrers影象性質 n拆分成m個數的和的...