DF1np.nan包含字符蟒蛇
Pet
Dog-Ralph
Cat
2016-11-03 00:00:00
我上面的數據幀,我想將「2016年11月3日00:00:00」值轉換成NaN值。由於它是唯一包含冒號的值,因此如何將該值轉換爲NaN,如下所示:
Pet
Dog-Ralph
Cat
NaN
感謝幫助!
DF1np.nan包含字符蟒蛇
Pet
Dog-Ralph
Cat
2016-11-03 00:00:00
我上面的數據幀,我想將「2016年11月3日00:00:00」值轉換成NaN值。由於它是唯一包含冒號的值,因此如何將該值轉換爲NaN,如下所示:
Pet
Dog-Ralph
Cat
NaN
感謝幫助!
import pandas as pd
import numpy as np
data = [{'name': 'Pet'},{'name':'Dog-Ralph'},{'name':'Cat'},{'name':'2016-11-03 00:00:00'}]
df = pd.DataFrame.from_dict(data, orient='columns')
df
輸出:
name
0 Pet
1 Dog-Ralph
2 Cat
3 2016-11-03 00:00:00
查找和使用替代np.where作爲它的更快:Read more
df['name'] = np.where(df['name'].str.contains(":"), np.nan, df['name'])
df
輸出:
name
0 Pet
1 Dog-Ralph
2 Cat
3 NaN
見np.where性能細節:Why is np.where faster than pd.apply
這工作!謝謝! – sschade
你可以試試這個:
df
# Pet
#0 Dog-Ralph
#1 Cat
#2 2016-11-03 00:00:00
import numpy as np
df[df["Pet"].notnull() & df['Pet'].str.contains(":")] = np.nan
# replace any non-nan string with `colon` with np.nan
df
# Pet
#0 Dog-Ralph
#1 Cat
#2 NaN
或者,如果你只需要更換Pet
柱:
df.loc[df["Pet"].notnull() & df["Pet"].str.contains(":"), "Pet"] = np.nan
,因爲它包含一個冒號應該轉換爲'NaN'?是否只有一個值需要更改,或者所有包含冒號的值都應該更改爲NaN? –
「寵物」列中的任何值。我的數據集中可能有多個具有此屬性。 – sschade