Нужна помощь с заданием по сбору данных в Excel Python - PullRequest
0 голосов
/ 01 октября 2019

Я недавно новичок в изучении Python (у меня уже 6 недель), и я не знаю, как атаковать это задание. Для этого задания мы получили набор данных Excel из Twitter и должны «очистить данные».

Я должен найти уникальные имена пользователей и количество раз, когда они твитнули в Твиттере (исключая ретвиты). и ответы) в наборе данных у вас есть. И найдите 10 самых популярных пользователей с самым частым количеством твитов (исключая ретвиты и ответы).

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

Мне удалось использовать этот код, чтобы отфильтровать всех пользователей, которые только отправили "Tweet". Это похоже на мой единственный прорыв.

df.loc[df['Relationship'] == "Tweet"]

В наборе данных есть столбец с именами пользователей «Users1» (т. Е. Их твиттер-дескрипторы) и столбец с именем «Отношения» (т. Е. Упоминание, ответы, твит). Это две колонки, с которыми я работаю.

К сожалению, я над головой и нуждаюсь в любой возможной помощи.

Спасибо

Редактировать:

print(df.User1.value_counts(['Relationship'] == "Tweet"))

Удалось немного продвинуться с этим кодом ^

Это действительно единственная строка кода, которую я нашел полу-полезной. Я болею больше часа.

Я приложил изображение части данных. Часть данных

1 Ответ

0 голосов
/ 01 октября 2019

Первое, что вы хотите сделать, это добавить столбец 'tweetcount' для каждого пользователя1, я думаю. Если каждый перевод строки представляет твит, это просто означает подсчет конечных строк ('\ n') в каждой строке твита.

Для поиска уникальных элементов в столбце данных в фрейме данных pandas, это должно работать, если выимпортировать numpy как np:

#generate a numpy array from the dataframe:
names = df[['username']].to_numpy()
#generate a simple list from the numpy array (flatten the array):
temp = [x for items in names for x in items]
#extract the unique elements from the simple list using the count method:
uniques = [x for x in temp if temp.count(x) == 1]

Теперь у вас есть список уникальных имен, чтобы извлечь значения индекса из ваших панд df:

indices = [x for x in range(len(df)) if df.loc[x, 'username'] in uniques]

Чтобы получить полный ряд данныхдля каждого уникального имени пользователя:

for x in indices:
    print(df.loc[x, 'username'], df.loc[x, 'tweetcount'])

Сортировка по заданному столбцу в кадре данных pandas намного проще (и это может быть и более простым решением для этого). Просто используйте:

df.sort_values(by='tweetcount')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...