努力理解這個來自 dataprep 包的 TypeError。我的設定非常簡單,如下所示:
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"phone": [
"555-234-5678",
"(555) 234-5678",
"555.234.5678",
"555/234/5678",
15551234567,
"(1) 555-234-5678",
" 1 (234) 567-8901 x. 1234",
"2345678901 extension 1234",
"2345678",
"800-299-JUNK",
"1-866-4ZIPCAR",
"123 ABC COMPANY",
" 66 91 889 8948",
"hello",
np.nan,
"NULL",
]
}
)
from dataprep.clean import clean_phone
clean_phone(df, "phone")
生成的錯誤訊息會在終端中拋出(出于安全目的,我省略了檔案路徑并用x替換了敏感值):
Traceback (most recent call last):
File "c:\Users\x\x\Documents\Repositories\test.py", line 14, in <module>
clean_phone(df, "phone")
File "C:\Users\x\Anaconda3\envs\myenv\lib\site-packages\dataprep\clean\clean_phone.py", line 150, in clean_phone
df = to_dask(df)
File "C:\Users\x\Anaconda3\envs\myenv\lib\site-packages\dataprep\clean\utils.py", line 73, in to_dask
return dd.from_pandas(df, npartitions=npartitions)
File "C:\Users\x\Anaconda3\envs\myenv\lib\site-packages\dask\dataframe\io\io.py", line 236, in from_pandas
raise TypeError(
TypeError: Please provide npartitions as an int, or possibly as None if you specify chunksize.
這是復制 dataprep 包團隊顯示的教程的直接嘗試:https ://docs.dataprep.ai/user_guide/clean/clean_phone.html
根據教程,預期輸出如下:
預期輸出。
將其發布為 TypeError 僅在谷歌搜索時顯示一個半相關的結果。
uj5u.com熱心網友回復:
包中有一個小錯誤,您可以在此 PRdataprep中跟蹤它。
同時,避免該錯誤的一種選擇是將資料顯式轉換為dask資料幀并將其傳遞給函式:
import numpy as np
import pandas as pd
from dask.dataframe import from_pandas
from dataprep.clean import clean_phone
df = pd.DataFrame(
{
"phone": [
"555-234-5678",
"(555) 234-5678",
"555.234.5678",
"555/234/5678",
15551234567,
"(1) 555-234-5678",
" 1 (234) 567-8901 x. 1234",
"2345678901 extension 1234",
"2345678",
"800-299-JUNK",
"1-866-4ZIPCAR",
"123 ABC COMPANY",
" 66 91 889 8948",
"hello",
np.nan,
"NULL",
]
}
)
# to avoid the bug we are passing ddf, not df
ddf = from_pandas(df, npartitions=2)
clean_phone(ddf, "phone")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484968.html
