python - value_counts 在 DataFrame 中返回 float

标签 python pandas dataframe

我正在尝试根据某些条件计算dataframe中的值,并从我从value_counts获得的series创建dataframe () 我不知道为什么,但它有时返回 int 有时返回 float ...我想将所有内容标准化为 int 并在 concat

之后在我的 dataframe 中添加第一个空的 column 名称
data = base.get_shuukeihyou(data_from=date_from, data_to=date_to, name=name_field)
sougou_call = data['charge'].value_counts()


data_tsunagatta = data[data.status != "gen"]
data_tsunagatta = data_tsunagatta[data_tsunagatta.status != "empty"]
data_tsunagatta = data_tsunagatta['charge'].value_counts()


apo = data[data.status == "apo"]
apo = apo['charge'].value_counts()

        
kontakuto = data[data.contact != "info"]
kontakuto = kontakuto[kontakuto.contact != "another"]
kontakuto = kontakuto['charge'].value_counts()


alls = pd.concat([sougou_call, data_tsunagatta, apo, kontakuto], axis=1)
alls = alls.fillna(0)
alls.columns = ["one", "two", "three", "four"]
print(alls)

返回这个

           one  two  three  four
bbbb aaaa      2    0.0 0.0      0.0
john smith          1    1.0 0.0      1.0

我想要这个

  name       one    two   three    four
bbbb aaaa      2     0      0       0
john smith     1     1      0       1

最佳答案

重置索引并使用新的convert_dtypes方法。

>>> df
            one  two  three  four
bbbb aaaa     2  0.0    0.0   0.0
john smith    1  1.0    0.0   1.0
>>> df.index.name = 'name'
>>> df.reset_index().convert_dtypes()
         name  one  two  three  four
0   bbbb aaaa    2    0      0     0
1  john smith    1    1      0     1

关于python - value_counts 在 DataFrame 中返回 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62510138/

相关文章:

Python:如果 B 列中的另一个值重复,如何更改 A 列中的值?

python - 使用另一个 CSR 矩阵的列填充空的 CSR 稀疏矩阵并对其进行切片

python - 根据分隔符 | 之前的第一个 id,完全删除 csv 文件中的重复条目行?

python - Ansible/分子 : service docker daemon/engine won’t start

python - 尝试将 pandas 数据框保存到现有 Excel 工作表时出现 AttributeError

python - Pandas DataFrame - 选择与多个条件之一匹配的行

c# - 什么是完成主题的最佳方式

python - Dataframe.toPandas 总是在驱动程序节点上还是在工作节点上?

python - 将列标题转换为值

python - 基于多列值函数的DataFrame排序