我有一个包含超过 600000 条记录的表和一个名为 Implementer_userid 的列,其中的值可能会重复多个记录。现在我想存储该列中特定不同值出现的次数。 COUNTIF(Excel)、GroupBy(sql) 和类似的函数将不起作用,因为我不需要特定值的计数,而是用其频率替换所有不同的值。请在以下三个框架之一中帮助我:Excel、Pandas(Python) 和 SQL。
最佳答案
如果我正确理解你的问题,你可以使用 value_counts() 函数构建一个频率表,然后浏览你的列,用从你构建的字典中检索到的相应频率替换键(行值)早些时候。例如:
frequencies = your_pandas_dataframe['Your column'].value_counts()
your_pandas_dataframe['Result column'] = your_pandas_dataframe['Your column'].apply(lambda x: frequencies[x])
如果您不需要这个额外的列,您可以这样做:
# ...
your_pandas_dataframe['Your column'] = your_pandas_dataframe['Your column'].apply(lambda x: frequencies[x])
这能回答你的问题吗?
关于python - 用excel/sql/pandas中同一列中出现的频率替换列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60318160/