Если вы пытаетесь использовать код ниже:
git reflog show
# head to recover to
git reset HEAD@{1}
и по какой-то причине получают:
error: неизвестный переключатель `e '
blockquote>, затем попробуйте обернуть
HEAD@{1}
в кавычкиgit reset 'HEAD@{1}'
Быстрое сравнение данных ответов на 20 тысяч строк данных-
@Alollz (в комментариях)
%timeit df.loc[df.filter(like='Task').applymap(lambda x: 'Drafting' in x).any(1)]
25.2 ms ± 2.09 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
@Sergey Bushmanov
%timeit df[df.Task1.str.contains("Drafting") | df.Task2.str.contains("Drafting") | df.Task3.str.contains("Drafting")]
58.7 ms ± 9.25 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
@ anky_91
%timeit df[df.filter(like='Task').apply(lambda x: x.str.contains('Drafting')).any(axis=1)]
88.6 ms ± 12.5 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit df[df.astype(str).apply(lambda x: x.str.contains('Drafting')).any(axis=1)]
128 ms ± 14.9 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
@ALollz
%timeit df.loc[df.filter(like='Task').stack().str.split(expand=True).eq('Drafting').any(1).any(level=0)]
290 ms ± 29.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
Или просто (обратите внимание, что здесь будут проверяться все df, а не конкретные столбцы):
df[df.astype(str).apply(lambda x: x.str.contains('Drafting')).any(axis=1)]
#for case insensitive use below
#df[df.astype(str).apply(lambda x: x.str.contains('Drafting',case=False)).any(axis=1)]
Name Age Task1 Task2 Task3
0 Ann 43 Drafting a Letter sending paking
1 Juh 29 sending paking Letter Drafting
3 Sam 59 sending pasting Letter Drafting
Вы можете попробовать что-то вроде этого,
new_df = df[(df['Task1'] == 'Drafting') | (df['Task2'] == 'Drafting') | (df['Task3'] == 'Drafting')]
. Это позволит выбрать все строки, если столбцы Task1
или Task2
или Task3
содержат «Чертеж».
Вы можете попробовать:
new_df = df[df.Task1.str.contains("Drafting") | df.Task2.str.contains("Drafting") | df.Task3.str.contains("Drafting")]
Это вернет new_df
со строками, содержащими «Чертеж» в любом из столбцов «Задача 1,2,3».
Это может быть достигнуто с помощью np.where
:
df = pd.DataFrame({
'Name': ['Ann', 'Juh', 'Jeo', 'Sam'],
'Age': [43,29,42,59],
'Task1': ['Drafting a letter', 'Sending', 'Pasting', 'Sending'],
'Task2': ['Sending', 'Paking', 'Sending', 'Pasting'],
'Task3': ['Packing', 'Letter Drafting', 'Paking', 'Letter Drafting']
})
df_new = df.iloc[df.index[np.concatenate(
np.where(df['Task1'].str.contains('Drafting')) +
np.where(df['Task2'].str.contains('Drafting')) +
np.where(df['Task3'].str.contains('Drafting'))).astype(int)
].values.tolist()]
print(df_new)
Name Age Task1 Task2 Task3
0 Ann 43 Drafting a letter Sending Packing
1 Juh 29 Sending Paking Letter Drafting
3 Sam 59 Sending Pasting Letter Drafting