((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数据帧中只有countdata,并且count的值不会为0,则可以尝试以下操作-

另一答案

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ @ @ @ @ a_ a_jan_zh_cn提供了一个有效的代码之后,我得出的结论-DataFrame根本不需要for循环。

以上是关于((Python)pandas.DataFrame不在每个for循环周期中更新值,为什么?的主要内容,如果未能解决你的问题,请参考以下文章

Python pandas DataFrame的切片取值

python: pandas.DataFrame,如何避免keyerror?

Python数据分析库pandas ------ DataFrame

Python pandas.DataFrame.aggregate函数方法的使用

Python pandas.DataFrame.applymap函数方法的使用

Python pandas.DataFrame.cumprod函数方法的使用