Ваша логика здесь немного запутанная, вам не нужно 3 ссылки на inDF
, вам не нужно создавать экземпляр с помощью None
или использовать встроенный any
с объектом pd.Series
.
Вы можете проверить, существует ли значение в серии, с помощью оператора in
:
if e in df['Subreddit'].values:
df.loc[df['Subreddit'] == e, 'Appearances'] += 1
else:
df = df.append({'Subreddit': e, 'Appearances': 1}, ignore_index=True)
Еще лучше, используйте defaultdict
в цикле и создайте свой фрейм данных в самом концепроцесс.Ваше текущее использование pd.DataFrame.append
не рекомендуется, так как дорогая операция повторяется для каждой строки.
from collections import defaultdict
#initialise dictionary
dd = defaultdict(int)
while counter < 50:
e = ... # gets just the subreddit name
dd[e] += 1 # increment count by 1
counter = counter + 2 # increment while loop counter
# create results dataframe
df = pd.DataFrame.from_dict(dd, orient='index').reset_index()
# rename columns
df.columns = ['Subreddit', 'Appearances']