Подмножество Pandas Dataframe, состоящее из строк с конкретными значениями столбцов - PullRequest
0 голосов
/ 27 ноября 2018

У меня проблема с одной строкой моего кода.Вот чего я хотел бы достичь:

  • reading_now - это строка, состоящая из 3 символов
  • df2 - это фрейм данных, который является подмножеством df1
  • Я бы хотел, чтобы df2 состоял из строк из df1, где первые три символа значения в столбце «Код» равны «чтение_сознания»

Я попытался использовать следующие две строки без успеха:

*df2 = df1.loc[(df1['Code'])[0:3] == reading_now]*
*df2 = df1[(str(df1.Code)[0:3] == reading_now)]*

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Похоже, вы были действительно близки со своей второй попыткой.

Вы можете решить эту проблему несколькими способами.

reading_now = 'AAA'
df1 = pd.DataFrame([{'Code': 'AAA'}, {'Code': 'BBB'}, {'Code': 'CCC'}])

решение :

df2 = df1[df1['Code'].str.startswith(reading_now)]

или

df2 = df1[df1['Code'][0:3] == reading_now]

В кадре данных df2 будет содержаться строка, начинающаяся со строки reading_now.

0 голосов
/ 27 ноября 2018

Вы можете использовать

df2 = df1[df1['Code'].str[0:3] == reading_now]

Например:

data = ['abcd', 'cbdz', 'abcz', 'bdaz']

df1 = pd.DataFrame(data, columns=['Code'])
df2 = df1[df1['Code'].str[0:3] == 'abc']

df2 приведет к кадру данных со столбцом «Код», содержащим «abcd» и «abcz»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...