101 - 151 Flashcards
os.path.isdir(path)
возвращает True если путь path существует и является каталогом, False в противном случае.
os.path.isdir('/home/User/Documents/file.txt')
os.path.isdir('/home/User/Documents') 👉 True
os.path.islink(path)
возвращает True если путь path относится к существующей записи каталога, который является символической ссылкой.
p = pathlib.Path('file.txt') p.touch() os.symlink(p, 'link') os.path.islink('link') 👉 True os.path.islink('file.txt') 👉 False p.unlink() os.unlink('link')
os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True)
создает жесткую ссылку, указывающую на src с именем dst.
- src - str, путь в файловой системе на который указывает ссылка
- dst - имя ссылки (str путь в файловой системе)
- src_dir_fd=None - int дескрипторов каталогов на который указывает ссылка
- dst_dir_fd=None - int имя ссылки, дескрипторов каталогов
- follow_symlinks=True - bool, переходить ли по ссылкам
scr = 'tt.py' dst = 'link_tt.py' os.link(scr, dst) os.path.isfile(dst)
os.symlink()
создает символическую ссылку, указывающую на src с именем dst.
- src - str, путь в файловой системе на который указывает ссылка,
- dst - имя ссылки (str путь в файловой системе),
- target_is_directory=False - bool, в Windows ссылка как каталог.
- dir_fd=None - int, дескрипторов каталогов.
src = '/home/ihritik/file.txt' dst = '/home/ihritik/Desktop/file(symlink).txt' os.symlink(src, dst)
src = '/usr/bin/python' dst = '/tmp/python' os.symlink(src, dst) os.readlink(dst) 👉 '/usr/bin/python' os.path.islink(dst) 👉 True
os.readlink(path, *, dir_fd=None)
вернет путь, на который указывает символическая ссылка. Результатом может быть абсолютный или относительный путь.
- path - str или bytes, символическая ссылка,
- dir_fd=None - int, дескриптор каталога.
src = '/usr/bin/python' dst = '/tmp/python' os.symlink(src, dst) os.readlink(dst) 👉 '/usr/bin/python'
os.path.relpath()
возвращает относительный путь к файлу path либо из текущего каталога, либо из необязательного начального каталога start.
path = "/home/User/Desktop/file.txt" start = "/home/User/" os.path.relpath(path, start) 👉 Desktop/file.txt
path = "/home/User/Desktop/file.txt" start = "/home/docs-python/Docs" os.path.relpath(path, start) 👉 '../../User/Desktop/file.txt'
os.path.isabs(path)
возвращает True если путь является абсолютным, False в противном случае.
os.path.isabs('/home/User/Documents')
os.path.isabs('home/User/Documents') 👉 False
os.path.isabs('../User/Documents') 👉 False
os.path.samefile(path1, path2)
возвращает True, если оба аргумента пути path1 и path2 ссылаются на один и тот же файл или каталог. Аргументы path1 и path2 должны быть одинакового типа и могут принимать байтовые или текстовые строки.
path = '/home/docs-python/Desktop/file.txt' link = '/home/docs-python/link.txt' os.path.samefile(path, link) 👉 True
os.path.splitext(path)
делит путь path на двойной кортеж (root, ext), так что root + ext == path. Элемент кортежа ext будет пустой если path начинается с точки и содержит не более одной точки. Ведущие точки на базовом имени игнорируются.
os.path.splitext('/home/User/Desktop/file.txt') 👉 ('/home/User/Desktop/file', '.txt')
os.path.splitext('/home/User/Desktop/') 👉 ('/home/User/Desktop/', '')
os.path.splitext('/home/User/Desktop') 👉 ('/home/User/Desktop', '')
sys.exit([arg])
considered good to be used in production code for the sys module is always available. The optional argument arg can be an integer giving the exit or another type of object. If it is an integer, zero is considered “successful termination”.
age = 17 if age < 18: # exits the program sys.exit("Age less than 18") else: print("Age is not less than 18") 👉 An exception has occurred, use %tb to see the full traceback. SystemExit: Age less than 18
pandas.DataFrame.nunique(axis=0, dropna=True)
Count the number of distinct elements in the specified axis. Return Series with the number of distinct elements. Can ignore NaN values.
df = pd.DataFrame({'A': [4, 5, 6], 'B': [4, 1, 1]}) df.nunique() A 3 B
df = pd.DataFrame({'A': [4, 5, 6], 'B': [4, 1, 1]}) df.nunique(axis=1) 0 1 1 2 2 2
pandas.DataFrame.rename(mapper=None, *, index=None, columns=None, axis=None, copy=True, inplace=False, level=None, errors=’ignore’)
the method allows you to change the row indexes and the column labels.
data = {"age": [50, 40, 30], "qualified": [True, False, False]} idx = ["Sally", "Mary", "John"] df = pd.DataFrame(data, index=idx) newdf = df.rename({"Sally": "Pete", "Mary": "Patrick", "John": "Paula"}) print(newdf) age qualified Pete 50 True Patrick 40 False Paula 30 False
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]}) df.rename(columns={"A": "a", "B": "c"}) a c 0 1 4 1 2 5 2 3 6
pandas.DataFrame.resample(rule, axis=0, closed=None, label=None, convention=’start’, kind=None, loffset=None, base=None, on=None, level=None, origin=’start_day’, offset=None)
Resample time-series data. Convenience method for frequency conversion and resampling of time series.
index = pd.date_range('1/1/2000', periods=9, freq='T') series = pd.Series(range(9), index=index) series 2000-01-01 00:00:00 0 2000-01-01 00:01:00 1 2000-01-01 00:02:00 2 2000-01-01 00:03:00 3 2000-01-01 00:04:00 4 2000-01-01 00:05:00 5 2000-01-01 00:06:00 6 2000-01-01 00:07:00 7 2000-01-01 00:08:00 8
Downsample the series into 3-minute bins and sum the values of the timestamps falling into a bin.
series.resample('3T').sum() 2000-01-01 00:00:00 3 2000-01-01 00:03:00 12 2000-01-01 00:06:00 21
pandas.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=NoDefault.no_default, inclusive=None, **kwargs)
Return a fixed frequency DatetimeIndex. Returns the range of equally spaced time points such that they all satisfy start <[=] x <[=] end.
pd.date_range(start='1/1/2018', end='1/08/2018') DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'], dtype='datetime64[ns]', freq='D')
pd.date_range(end='1/1/2018', periods=8) DatetimeIndex(['2017-12-25', '2017-12-26', '2017-12-27', '2017-12-28', '2017-12-29', '2017-12-30', '2017-12-31', '2018-01-01'], dtype='datetime64[ns]', freq='D')
pd.date_range(start='1/1/2018', periods=5, freq='M') DatetimeIndex(['2018-01-31', '2018-02-28', '2018-03-31', '2018-04-30','2018-05-31'], dtype='datetime64[ns]', freq='M')
pandas.DataFrame.applymap(func, na_action=None, **kwargs)
Apply a function to a Dataframe elementwise. This method applies a function that accepts and returns a scalar to every element of a DataFrame.
df = pd.DataFrame([[1, 2.12], [3.356, 4.567]]) df.applymap(lambda x: x**2) 0 1 0 1.000000 4.494400 1 11.262736 20.857489
df = pd.DataFrame([[1, 2.12], [3.356, 4.567]]) df.applymap(lambda x: len(str(x))) 0 1 0 3 4 1 5 5
numpy.tile(A, reps)
Construct an array by repeating A the number of times given by reps. If reps have length d, the result will have a dimension of max(d, A.ndim).
a = np.array([0, 1, 2]) np.tile(a, 2) 👉 array([0, 1, 2, 0, 1, 2])
a = np.array([0, 1, 2]) np.tile(a, (2, 2)) 👉 array([[0, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1, 2]])
a = np.array([0, 1, 2]) np.tile(a, (2, 1, 2)) 👉 array([[[0, 1, 2, 0, 1, 2]], [[0, 1, 2, 0, 1, 2]]])
numpy.triu(m, k=0)
The upper triangle of an array. Return a copy of an array with the elements below the k-th diagonal zeroed. For arrays with ndim exceeding 2, triu will apply to the final two axes.
np.triu([[1,2,3],[4,5,6],[7,8,9],[10,11,12]], -1) array([[ 1, 2, 3], [ 4, 5, 6], [ 0, 8, 9], [ 0, 0, 12]])
np.triu(np.arange(3*4*5).reshape(3, 4, 5)) array([[[ 0, 1, 2, 3, 4], [ 0, 6, 7, 8, 9], [ 0, 0, 12, 13, 14], [ 0, 0, 0, 18, 19]], [[20, 21, 22, 23, 24], [ 0, 26, 27, 28, 29], [ 0, 0, 32, 33, 34], [ 0, 0, 0, 38, 39]], [[40, 41, 42, 43, 44], [ 0, 46, 47, 48, 49], [ 0, 0, 52, 53, 54], [ 0, 0, 0, 58, 59]]])
numpy.linalg.matrix_rank(A, tol=None, hermitian=False)
Return the matrix rank of an array using the SVD method. The rank of the array is the number of singular values of the array that are greater than tol.
from numpy.linalg import matrix_rank matrix_rank(np.eye(4)) # Full rank matrix 👉 4
I=np.eye(4); I[-1,-1] = 0. # rank deficient matrix matrix_rank(I) 👉 3
matrix_rank(np.ones((4,))) # 1 dimension - rank 1 unless all 0 👉 1
pandas.DataFrame.drop_duplicates(subset=None, keep=’first’, inplace=False, ignore_index=False)
Return DataFrame with duplicate rows removed. Considering certain columns is optional. Indexes, including time indexes, are ignored.
By default, it removes duplicate rows based on all columns. df.drop_duplicates()
To remove duplicates on specific column(s), use a subset. df.drop_duplicates(subset=['brand'])
pandas.Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
Return a Series containing counts of unique values. The resulting object will be in descending order so that the first element is the most frequently-occurring element.
index = pd.Index([3, 1, 2, 3, 4, np.nan]) index.value_counts() 3.0 2 1.0 1 2.0 1 4.0 1 dtype: int64
s = pd.Series([3, 1, 2, 3, 4, np.nan]) s.value_counts(normalize=True) 3.0 0.4 1.0 0.2 2.0 0.2 4.0 0.2 dtype: float64