((Python)pandas.DataFrame不在每个for循环周期中更新值,为什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了((Python)pandas.DataFrame不在每个for循环周期中更新值,为什么?相关的知识,希望对你有一定的参考价值。
我是Pandas DataFrame的新手,很好奇为什么我在新行中添加新值的基本思想在这里行不通。
[我还尝试过对.loc [] 、. append()使用不同的方式,但是过分地以错误的方式使用了它们(仍然有很多东西需要学习。
说明在名为length的数据中添加一列,定义为每个单词的长度。添加另一列名为frequency的列,对数据中的每个单词定义如下:
- 如果计数> 10,则频率为“频繁”。
- 如果1
如果count == 1,则频率为“唯一”。
我的if sentenses仅按字典之类的对象的最后值记录所有DataFrame(来自pandas / numpy的计数器?)。 Word和count值都在一个周期内返回,所以我不明白为什么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
我是Pandas DataFrame的新手,很好奇为什么我在新行中添加新值的基本思想在这里行不通。我也尝试对.loc [] 、. append()使用不同的方式,但是很明显地使用了...
[假设您在word
数据帧中只有count
和data
,并且count
的值不会为0
,则可以尝试以下操作-
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ @ @ @ @ a_ a_jan_zh_cn提供了一个有效的代码之后,我得出的结论-DataFrame根本不需要for循环。
以上是关于((Python)pandas.DataFrame不在每个for循环周期中更新值,为什么?的主要内容,如果未能解决你的问题,请参考以下文章
python: pandas.DataFrame,如何避免keyerror?
Python数据分析库pandas ------ DataFrame
Python pandas.DataFrame.aggregate函数方法的使用