pandas - pandas DataFrame value_counts 在 stores DataFrame 的列上

我试图在 pandas DataFrame 列上使用 value_counts() stores 另一个 DataFrame。是否有可能让 value_counts() 函数工作(或类似的东西),而不必将我的 DataFrames 转换为字符串或哈希或类似的东西?

我试图计算内部的 DataFrames,它完全中断,然后我尝试使用 Arrays,它似乎也无法进行正确的比较:

# importing pandas 
import pandas as pd
import numpy as np
 
# Creating Arrys
ar1 = np.array([11,22])
ar2 = np.array([11,22])
ar3 = np.array([33,44])

df = pd.DataFrame([
  ['0', ar1], 
  ['1', ar2],
  ['2', ar3]
], columns =['str', 'ars'])

print(df["ars"].value_counts())

预期:

[11, 22] 2

[33, 44] 1

实际:

[11, 22] 1

[11, 22] 1

[33, 44] 1

# importing pandas 
import pandas as pd
import numpy as np
 
# Creating Arrys
df1 = pd.DataFrame({'col1': [11], 'col2': [22]})
df2 = pd.DataFrame({'col1': [11], 'col2': [22]})
df3 = pd.DataFrame({'col1': [33], 'col2': [44]})

df = pd.DataFrame([
  ['0', df1], 
  ['1', df2],
  ['2', df3]
], columns =['str', 'dfs'])

print(df["dfs"].value_counts())

预期:

{} 2

{} 1

实际:

完全中断

如何在 DataFrame 中实现复杂 values 的计数?

回答1

老实说,我很困惑其中任何一个如何在不引发异常的情况下运行。

np.arraypd.DataFrame 都不是可散列的,据我了解,散列对于 value_count 是必需的。

案例和要点,您的两个示例都不能转换为它们的 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.value_counts.html#pandas-dataframe-value-counts 等效项,因为它在下面执行需要散列的 df.groupby(["ars"], dropna=True).grouper.size()

>>> df.value_counts(["ars"])

TypeError: unhashable type: 'numpy.ndarray'

总的来说,我不会指望任何 .value_count 方法在不可散列的列上工作。

相似文章

最新文章