Возможно ли Python создать новый фрейм данных из существующего фрейма данных? - PullRequest
0 голосов
/ 23 ноября 2018

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

Вот пример моего имени df df_all

Doc       name count year
[A1,A2]   John   1   2018
[A1,A3]   Mark   0   2018
[A2,A4]   John   3   2018

здеськод, который я пробовал

n_wsp_71 = [i for i in df_all if i.count != 0]
n_wsp_71

и вот мои результаты

['Doc', 'name', 'count', 'year']

, но я ожидаю увидеть эти результаты

newdf
        Doc       name count year
        [A1,A2]   John   1   2018
        [A2,A4]   John   3   2018

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018
df = pd.DataFrame({"Doc": [["A1","A2"], ["A1","A3"], ["A2","A4"]], "name": ["John", "Mark", "John"], "count": [1,0,3], "year": [2018, 2018, 2018]})

df2 = df.query("count!=0").reset_index(drop=True)

# for count = 0
df2 = df.query("count==0").reset_index(drop=True)

#method 2
df2 = df[~(df["count"].isin(['0']))].reset_index(drop=True)

# for count = 0
df2 = df[(df["count"].isin(['0']))].reset_index(drop=True)
print(df2)

Выход:

        Doc  name  count  year
0  [A1, A2]  John      1  2018
1  [A2, A4]  John      3  2018

        Doc  name  count  year
0  [A1, A3]  Mark      0  2018
0 голосов
/ 23 ноября 2018

Вы делаете понимание списка для фреймов данных панд, которые никогда не будут работать

Итак, вам нужно сделать:

list_all=list_all[list_all['count']!=0]

А теперь:

print(list_all)

Is:

Doc       name count year
[A1,A2]   John   1   2018
[A2,A4]   John   3   2018
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...