簡體   English   中英

根據dict,在DataFrame / Series中映射值的最快方法是什么?

[英]What is the fastest way to map value in DataFrame/Series according to a dict?

我有一個5,000,000行x 3列的數據集。

基本上,它看起來像:

    location       os  clicked
0      China      ios      1
1        USA  android      0
2      Japan      ios      0
3      China  android      1

因此,我去了Pandas.DataFrame獲得了一些很棒的快速支持。

現在,根據一個命令,我將替換位於一系列數據框中的值。

注意:我用作參考的字典看起來像:

{   China : 1,
      USA : 2,
    Japan : 3,
     .... : ..
 }

因為我使用Pandas.DataFrame.Column_Label.drop_duplicates()

終於,我得到了:

    location     os  clicked
0         1      ios      1
1         2  android      0
2         3      ios      0
3         1  android      1

我已經在446秒內完成了完全映射。

有更快的方法嗎?

我認為replace()函數為無意義的搜索浪費了很多時間。 那么,我要走向正確的終點嗎?

我現在可以回答我自己的問題。

這樣做的重點是處理分類數據,這些數據一遍又一遍地出現在“分類”任務等中。首先,我們普遍希望使用一種熱編碼方法將分類數據轉換為數值向量,這對於sklearn來說是可以接受的包或統計模型。

為此,只需使用以下命令將cvs文件讀取為pandas.DataFrame: data = pd.read_csv(dir, encoding='utf-8')

然后:

data_binary = pd.get_dummies(data, prefix=['os','locate'],columns=['os','location'])

一切順利。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM