2012-10-03 50 views
3

目前,我有一個Excel中110,000個捐助者的列表。他們給我們的信息之一就是他們的職業。我想將這個列表縮減爲我定義的10或20個類別。使用python對列表中的項目進行分類

正常情況下,我只是通過這一行,逐行進行,但由於我必須這樣做了一年的數據,我沒有時間做一行一行一行的行。

是否有無論如何定義我的10或20類,然後讓python從那裏排序?

更新:

數據格式不正確。人們在網上或紙上填寫一個字段,然後郵寄給數據處理公司。有很大的差異。首席執行官,行政總裁,行政辦公室,名單繼續。

我用一種UNIQ駕駛室管理和發現,我的列表中有〜13000個專業。

+0

你的意思是你有一個不同的職業清單,並知道,每個職業,它屬於哪個類別?如果是這樣,那麼你可以用Python做到這一點,但你也可以在數據庫中做到這一點,甚至直接在Excel中查找表。 –

+2

我認爲你是編程的新手。您至少需要告訴我們*數據是否完整(例如,從一百個列表中挑選專業人員),還是全部由數據輸入操作人員輸入。 – Marcin

+0

嘿,對不起,我沒有提到這一點。 數據格式不正確。人們在網上或紙上填寫一個字段,然後郵寄給數據處理公司。有很大的差異。首席執行官,行政總裁,行政辦公室,名單繼續。 我使用了SORT UNIQ命令,發現我的列表中有13,000個不同的職業。 – jtc99

回答

1

我認爲數據是嘈雜的,因爲它可能只是寫入任何東西。這裏的主要困難在於如何定義輸入數據和類別之間的映射,以及首先將涉及查看數據。

我建議你看看你有什麼,以及輸入的職業制定映射列表來分類。然後,您可以使用幾乎任何工具(如果您使用的是Excel,請使用excel)將該映射應用於每一行。有些行不會屬於任何類別。你應該看看它們,找出是否因爲你的映射不充分(例如,你沒有想到如何處理獸醫),或者是因爲數據嘈雜。如果是噪聲,則可以手動處理餘數,或嘗試使用其他技術對數據進行分類,例如正則表達式或某種自然語言處理庫。

一旦你已經明白你有問題的情況,回來向我們詢問他們,樣本數據,和你的代碼已經被使用。

如果你甚至不能搞清楚如何運行映射的第一步,做一些研究,嘗試寫一些東西,然後用約一個具體問題回來。

0

以目前的格式轉儲這些數據幾乎是不可能的。你將需要手動減少所有的情況下進入一個定義良好的情況下設置,如:

  • 行政總裁,執行辦公室,CIO,CEO,CTO都將去C-星類
  • 經理,PM,主管會去一個管理類
  • 像獸醫或護理員或類似這種事情
  • 一個權衡將下其他類別去

本手冊配對也將讓您瞭解如何格式化爲數據處理公司提供更好的問卷或格式,並進一步增加y我們可以更快地處理後期數據。

一旦這一點上達到一個元組的字典就足夠數據catagorization,你不得不像下面這樣:

dict_x = {'C-Star': (('bob', donation_dollars, 'company_y', 'e_mail_addy'), 
        ('jim', donation_dollars_2, 'company_z', 'e_mail_addy')), 
      'Other': (('sophie', donation_dollars_3, 'company_x', 'e_mail_addy')) } 

,可以使用list包容,lambda函數,發電機,或建一些老式的循環。

tl:dr;你將不得不手動對這個集合進行分類,如果沒有一個格式良好的數據集,你幾乎不可能在所有邊緣情況下以編程方式進行分析。如果你沒有時間,那裏有專門的公司,並且能夠幫助你將數據格式化到你想要的組中,這是時間或金錢,你將不得不花費自己去獲得自己變成一個易於排序的數據集。

相關問題