Я новичок в Pandas DataFrame и мне было любопытно, почему мои базовые c мысли о добавлении новых значений в новую строку здесь не работают.
Я также пытался использовать разные способы с .loc [], .append (), но якобы использовал их некорректно (все еще надо учиться).
Инструкции Добавить столбец к данным именованная длина, определяемая как длина каждого слова. Добавьте еще один столбец с именем частоты, который определяется следующим образом для каждого слова в данных:
- Если число> 10, частота "частая".
- Если 1 <количество <= 10 , частота "нечастая". </li>
Если число == 1, частота "уникальна".
Моя запись предложений if для всех DataFrame только по последнему значению словаря, как объект ( Счетчик от панд / numpy?). Все слова и значения счетчиков возвращаются в течение цикла, поэтому я не понимаю, почему DataFrame не может добавлять значения каждый цикл
data['length'] = ''
data['frequency'] = ''
for word, count in counted_text.items():
if count > 10:
data.length = len(word)
data.frequency = 'frequent'
if 1 < count <=10:
data.length = len(word)
data.frequency = 'infrequent'
if count == 1:
data.length = len(word)
data.frequency = 'unique'
print(word, len(word), '\n')
"""
This is working code that I googled
-----------------------------------
data = pd.DataFrame({
"word": list(counted_text.keys()),
"count": list(counted_text.values())
})
data["length"] = data["word"].apply(len)
data.loc[data["count"] > 10, "frequency"] = "frequent"
data.loc[data["count"] <= 10, "frequency"] = "infrequent"
data.loc[data["count"] == 1, "frequency"] = "unique"
"""
print(data.head(), '\n')
print(data.tail())
Вывод:
finis 5
word count length frequency
1 the 935 5 unique
2 tragedie 3 5 unique
3 of 576 5 unique
4 hamlet 97 5 unique
5 45513 5 unique
word count length frequency
5109 shooteexeunt 1 5 unique
5110 marching 1 5 unique
5111 peale 1 5 unique
5112 ord 1 5 unique
5113 finis 1 5 unique