最近在做資料採集過程中,有一些資料採集下來之後是用逗號分割開的,需要拆分成兩條,類似:
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個數的和的...