Начиная с v0.17,
blockquote>convert_objects
устарел.Чтобы преобразовать серию в числовое значение, используйте
pd.to_numeric
с помощью кнопкиerrors='coerce'
-s = pd.Series(['1','2','3','4','.']) pd.to_numeric(s, errors='coerce') 0 1.0 1 2.0 2 3.0 3 4.0 4 NaN dtype: float64
Если вам нужно заполнить
NaN
s, используйтеpd.Series.fillna
-pd.to_numeric(s, errors='coerce').fillna(0, downcast='infer') 0 1 1 2 2 3 3 4 4 0 dtype: float64
Примечание.
downcast='infer'
попытается сбрасывать поплавки к целым числам, где это возможно. Удалите аргумент, если вы этого не хотите.
pd.DataFrame
В случае, если кто-то заинтересован в том, как продлить это на dataframes, вот как -
df = pd.DataFrame({'A' : np.random.choice(10, 10), 'B' : ['1', '2', '3', '4', '###', '...', 50, '234', '34', '23'], 'C' : np.random.choice(10, 10), 'D' : ['23', '1', '...', '268', '34', '21', '$$', '34', '4567', '0']}) df A B C D 0 2 1 2 23 1 9 2 0 1 2 2 3 4 ... 3 9 4 9 268 4 0 ### 3 34 5 8 ... 6 21 6 5 50 2 $$ 7 3 234 4 34 8 4 34 9 4567 9 8 23 0 0 df.dtypes A int64 B object C int64 D object dtype: object
Если вы не знаете, какие столбцы не являются числовыми, запросите
dtypes
и получите маску -df.dtypes.eq(object) A False B True C False D True dtype: bool cols = df.columns[df.dtypes.eq(object)] cols Index(['B', 'D'], dtype='object')
Теперь используйте маску для фильтрации по столбцам и
apply
pd.to_numeric
-df[cols] = df[cols].apply(pd.to_numeric, errors='coerce', axis=0)
Или,
for c in cols: df[c] = pd.to_numeric(df[c], errors='coerce')
df A B C D 0 2 1.0 2 23.0 1 9 2.0 0 1.0 2 2 3.0 4 NaN 3 9 4.0 9 268.0 4 0 NaN 3 34.0 5 8 NaN 6 21.0 6 5 50.0 2 NaN 7 3 234.0 4 34.0 8 4 34.0 9 4567.0 9 8 23.0 0 0.0
Применение
pd.to_numeric
вдоль столбцов должно быть немного быстрее в течение длительного времени dataframes. Для широких фреймов данных используйтеaxis=1
.
Ссылка Shell32.dll из файловой системы, перейдите на вкладку COM диалогового окна «Добавить ref ...» и выберите компонент под названием «Microsoft Shell Controls and Automation»
string destPath = @"c:\temp";
string shortcutName = @"नमस्ते.lnk";
// Create empty .lnk file
string path = System.IO.Path.Combine(destPath, shortcutName);
System.IO.File.WriteAllBytes(path, new byte[0]);
// Create a ShellLinkObject that references the .lnk file
Shell32.Shell shl = new Shell32.ShellClass();
Shell32.Folder dir = shl.NameSpace(destPath);
Shell32.FolderItem itm = dir.Items().Item(shortcutName);
Shell32.ShellLinkObject lnk = (Shell32.ShellLinkObject)itm.GetLink;
// Set the .lnk file properties
lnk.Path = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\notepad.exe";
lnk.Description = "nobugz was here";
lnk.Arguments = "sample.txt";
lnk.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
lnk.Save(path);