現在,我們將探索將json資料轉換為**格式。 在nobel-laureates.json中,我們擁有900多位諾貝爾獎獲得者的資料。 讓我們載入它,看看:
nobel_laureates = json.load(
open
("data/nobel-laureates.json"
,"r"))
pprint(nobel_laureates[
"laureates"][
:2])
輸出如下:
[
], 'category'
:'physics',
'motivation'
:'"in recognition of the extraordinary services he '
'has rendered by the discovery of the remarkable '
'rays subsequently named after him"',
'share'
:'1',
'year'
:'1901'}],
'surname'
:'röntgen'},
], 'category'
:'physics',
'motivation'
:'"in recognition of the extraordinary service they '
'rendered by their researches into the influence '
'of magnetism upon radiation phenomena"',
'share'
:'2',
'year'
:'1902'}],
'surname'
:'lorentz'
}]
我們希望將其中一些資料放入表中。 我們對每個獲獎者的名字,姓氏和獲獎年份感興趣。 但是,如果我們檢查資料,就會莫名其妙地發現有些條目沒有任何資訊,例如它們甚至沒有列出名稱。 因此,我們需要將此條件構建到**中:有效的獲獎者必須具有名字。 有時,獎項是頒發給組織的,組織沒有姓。 在這些情況下,我們將姓氏留空。 一些獲獎者(例如居里夫人)可能在不同年份獲得了多個諾貝爾獎。 對於這些情況,我們希望將year字串構建為包含不同年份,並在其之間使用空格。 牢記所有這些注意事項,我們可以將資料轉換為**格式:
laureates_table =
for n, laureate in
enumerate
(nobel_laureates[
"laureates"])
:if"firstname"
in laureate.keys():
if"surname"
in laureate.keys():
surname = laureate[
"surname"
]else
: surname =
"" years =
for prize in laureate[
"prizes"]:
"year"])
iflen
(years)==1
: years = years[0]
else
: years =
" ".join(years)
firstname = laureate[
"firstname"
] row =
[surname, firstname, years]
laureates_table[:10
]
輸出:
[
['röntgen', 'wilhelm conrad', '1901'
], [
'lorentz', 'hendrik antoon', '1902'
], [
'zeeman', 'pieter', '1902'
], [
'becquerel', 'antoine henri', '1903'
], [
'curie', 'pierre', '1903'
], [
'curie, née sklodowska', 'marie', '1903 1911'
], [
'(john william strutt)', 'lord rayleigh', '1904'
], [
'von lenard', 'philipp eduard anton', '1905'
], [
'thomson', 'joseph john', '1906'
], [
'michelson', 'albert abraham', '1907'
]]
一些獲獎者的姓名可能實際上包含逗號。 因此,在這種情況下,逗號不能很好地分隔資料。 相反,我們可以使用製表符**\t**作為分隔符,並將此資料儲存到「製表符分隔值」或「 .tsv」檔案中。
with
open
("data/nobel-laureates-info.tsv"
,"w"
)as f:
for laureate in laureates_table:
f.write(
"\t"
.join(laureate)
+"\n"
)
mongo匯出資料(json csv)
我們在開發的過程中,往往會有一些需求是要對資料做統計和分析的,但是mongo不像sql那麼的靈活和操作性沒那麼強,所以我們一般也都是寫到日誌裡面撈資料或者是直接mongo匯出資料給統計平台用,下面介紹一下相關的一些操作和例項。我們mongo匯出資料一般都是要用到官方的乙個匯出工具 mongoexpo...
資料預處理
現實世界中資料大體上都是不完整,不一致的髒資料,無法直接進行資料探勘,或挖掘結果差強人意。為了提前資料探勘的質量產生了資料預處理技術。資料預處理有多種方法 資料清理,資料整合,資料變換,資料歸約等。這些資料處理技術在資料探勘之前使用,大大提高了資料探勘模式的質量,降低實際挖掘所需要的時間。一 資料清...
資料預處理
常見的資料預處理方法,以下通過sklearn的preprocessing模組來介紹 變換後各維特徵有0均值,單位方差。也叫z score規範化 零均值規範化 計算方式是將特徵值減去均值,除以標準差。sklearn.preprocessing scale x 一般會把train和test集放在一起做標...