Pandas Dataframe уменьшают Dataframe с пониманием списка - PullRequest
0 голосов
/ 06 февраля 2020
def check_LM_CapLetters(nex):
df_ja = nex.copy()
df_nein = nex.copy()
criterion_nein = df_nein["NAME2"].map(lambda x: x.endswith("_nein"))
criterion_ja = df_ja["NAME2"].map(lambda y: y.endswith("_ja"))
df_ja[criterion_ja]
df_nein[criterion_nein]
frames = [df_ja,df_nein]
df_found_small = pd.concat(frames)

return df_found_small

Попытка уменьшить мой фрейм данных до строк, где запись в ячейке заканчивается на "_ja" или "_nein".

Но вывод похож на объединение двух копий. То, что я хочу, это ограничение, которое показывает только те строки, которые соответствуют моим критериям.

Кстати ... есть ли более элегантный и эффективный способ? Я впервые имею дело со списком, и я немного ошеломлен ..

Мои данные выглядят так:

Идентификатор отношения; Termid; ИМЯ; бла, реветь; TermID2; ИМЯ2 enter image description here

1 Ответ

2 голосов
/ 06 февраля 2020

Попробуйте следующее: - применить Pandas строковую функцию .str.endswith() - использовать сложные критерии для сортировки

Рабочий пример:

df = pd.DataFrame (['aaa','bba','baa','cba', 'xbb'], columns = ['name2'])
df_small = df[(df.name2.str.endswith ('aa'))|(df.name2.str.endswith ('ba'))]
>>>
  name2
0  aaa
1  bba
2  baa
3  cba
...