- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用这种形式的多值数据透视表:
pivot = df.pivot_table(index=[indices], columns=['column'], values=['start_value','end_value','delta','name','unit'], aggfunc='sum')
数据帧 df 包含所有 dtype 对象的列 ['start_value','end_value','delta','name','unit']。这是因为“name”和“unit”实际上是字符串列,“start_value”、“end_value”和“delta”是浮点列。对象数据类型是使数据透视表工作的尝试,即使数据类型不同(内容方面)。
当其中一个值非 nan 时,任何 nan 值都会转换为 0,而不是 nan。
df:
indices, column, 'start_value','end_value','delta','name','unit'
A, '1nan', nan, 1000, nan, 'test', 'USD'
A, 'other', nan, nan, nan, 'test2', 'USD'
数据透视结果:
indices, ('1nan', 'start_value'), ('1nan', 'end_value'), ('1nan', 'delta'),('1nan', 'name'), ('1nan', 'unit'), ('other', 'start_value'), ('other', 'end_value'), ('other', 'delta'), ('other', 'name'), ('other', 'unit')
A, 0 [should be nan], 1000, 0 [should be nan], 'test','USD', nan, nan, nan, 'test2', 'USD'
关于如何得到 nan 而不是 0 有什么建议吗?
最佳答案
替代解决方案是使用GroupBy.sum
带有参数 min_count=1
,但删除了非 numeric columns :
df = (df.groupby(['indices', 'column'])
['start_value','end_value','delta','name','unit']
.sum(min_count=1)
.unstack()
)
print (df)
start_value end_value delta
column '1nan' 'other' '1nan' 'other' '1nan' 'other'
indices
A NaN NaN 1000.0 NaN NaN NaN
因为 pivot_table
被删除了 NaN 列:
df = df.pivot_table(index=['indices'],
columns=['column'],
values=['start_value','end_value','delta','name','unit'],
aggfunc=lambda x: x.sum(min_count=1)
)
print (df)
end_value name unit
column '1nan' '1nan' 'other' '1nan' 'other'
indices
A 1000.0 'test' 'test2' 'USD' 'USD'
关于python - Pandas hub_table 用 0 aggfunc ='sum' 替换 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53143406/
我想用结合了两个函数的 aggfunc 创建一个数据透视表。这个我试过了 pivot=pd.pivot_table(data, columns='Genename', values=['Median
我正在尝试将自定义聚合函数应用于数据透视表,但不断收到 KeyError:“PayoffUPB”。这是 aggfunc 的语法问题吗,还是我需要在这里使用 lambda 函数?谢谢您的帮助。 impo
我正在使用 Pandas 从 django 查询集创建数据透视表。它工作得很好,我返回的是一个字符串,而不是聚合数学运算。 一切都很完美,直到我开始返回 html 字符串。现在发生的事情是这样的:pa
我想使用pivot_table来显示每个单元格中列的任意值。例如,给定一个像这样的 DataFrame: df = pd.DataFrame({'x': ['x1', 'x1', 'x2'],
假设我有 my_df: my_df = pd.DataFrame({'X': ['a', 'a', 'b', 'b'], 'Y1': [1, 2, 3, 4], 'Y2': [1, 2, 3, 4],
我正在尝试在 pandas 或 dask 中创建数据透视表,但当然我在 pandas 中遇到内存错误。这就是我想使用 dask 的原因,因为我想可能处理更大的文件。 在 pandas 中我这样做了:
我制作了一个包含各种列的数据透视表,并应用了 aggfunc,如 np.sum 和 first and count。我想要数据框中列的相应值的最后一个实例。有什么功能可以达到这个目的吗? 最佳答案 我
当我在我拥有的数据帧上创建数据透视表时,传递 aggfunc='mean' 按预期工作,aggfunc='count' 按预期工作,但是 aggfunc=['mean', 'count'] 结果:At
Agg函数的Pandas数据透视表字典 我正在尝试在旋转期间计算 3 个 aggregative 函数: 计数 均值 标准差 这是代码: n_page = (pd.pivot_table(Main_D
试图生成一个包含多个“值”列的数据透视表。我知道我可以使用 aggfunc 以我想要的方式聚合值,但是如果我不想对两列求和或求平均,而是想要一列的总和而另一列的平均值。那么使用 pandas 可以做到
我只想要一个值列作为结果在下面的代码: df = pd.DataFrame({'team':['a','a'],'balance':[100,3],'dpd':[0,60]}) df.pivot_ta
尝试运行此代码时,我收到错误(InvalidIndexError:重新索引仅对具有唯一值的索引对象有效),该代码从数据帧中创建了一个数据透视表: pivData = dfData.pivot_tabl
我有一个包含日期、买入和卖出值的数据框,并在该数据框上执行pivot_table获取每个有效日期的所有买入/卖出值(value)。 data = [('20170325', 'Buy', 400 ),
我注意到,当有多个 aggfunc 例如(“count”、“mean”、“sum”)时,我无法设置 margins=True。 它会抛出KeyError: 'Level None not found'
我正在处理一些数据并最终遇到这样的情况,我想剪下这样的系列: df = pd.DataFrame({'A': 10000*[1], 'B': np.random.randint(0, 1001, 10
我有一个关于教育和收入的 pandas 数据框,基本上如下所示。 import pandas as pd import numpy as np data = { 'education': ['
对于给定的列定义,当使用 aggFunc 时,headerName 以 func(string) 格式出现 - 我只希望标题显示我定义的字符串。当 AggFunc 为 null 时,此行为不存在。 c
Campaign ID Revenue Total 601 $2,690 601 $817 601 $0 649 $4,339 1090
我有一个 .csv 数据集正确导入、清理、NA 值按要求等。即(数据集大得多 - 名称可能包含相同的名称和日期) NAME SHIFT DEP1 DEP2 DEP3 DAY COLLIN
这两行代码只是传递的参数值不同。我不清楚的是,为什么在第一种情况下(“计数”)我们需要引号,而在第二种情况下(len)不需要引号。 by_weekday1 = users.pivot_table(in
我是一名优秀的程序员,十分优秀!