- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
解决以下 Pandas 问题的最有效方法是什么?
这是一个简化的示例,其中包含数据框中的一些数据:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=['a','b','c','d'],
index=np.random.randint(0,10,size=10))
此数据如下所示:
a b c d
1 0 0 9 9
0 2 2 1 7
3 9 3 4 0
2 5 0 9 4
1 7 7 7 2
6 4 4 6 4
1 1 6 0 0
7 8 0 9 3
5 0 0 8 3
4 5 0 2 4
现在我想应用一些功能
f
到数据帧中的每个值(例如下面的函数),并获取一个数据帧作为结果输出。棘手的部分是
我正在应用的函数取决于我当前位于 的索引的值.
def f(cell_val, row_val):
"""some function which needs to know row_val to use it"""
try:
return cell_val/row_val
except ZeroDivisionError:
return -1
通常,如果我想对数据框中的每个单独的单元格应用一个函数,我只需调用
.applymap()
在
f
.即使我必须传入第二个参数(在本例中为“row_val”),如果参数是固定数字,我也可以编写一个 lambda 表达式,例如
lambda x: f(x,i)
在哪里
i
是我想要的固定数字。但是,我的第二个参数取决于我当前从中调用函数的数据框中的行,这意味着我不能只使用
.applymap()
.
applymap()
在我的元组数据框中。但这似乎很老套,我还创建了一个完全独立的数据框作为额外的步骤。 最佳答案
IIUC 你可以使用 div
与 axis=0
另外,您需要转换 Index
反对 Series
对象使用 to_series
:
In [121]:
df.div(df.index.to_series(), axis=0).replace(np.inf, -1)
Out[121]:
a b c d
1 0.000000 0.000000 9.000000 9.000000
0 -1.000000 -1.000000 -1.000000 -1.000000
3 3.000000 1.000000 1.333333 0.000000
2 2.500000 0.000000 4.500000 2.000000
1 7.000000 7.000000 7.000000 2.000000
6 0.666667 0.666667 1.000000 0.666667
1 1.000000 6.000000 0.000000 0.000000
7 1.142857 0.000000 1.285714 0.428571
5 0.000000 0.000000 1.600000 0.600000
4 1.250000 0.000000 0.500000 1.000000
inf
您需要调用
replace
用
-1
替换这些行
关于python - 使用 Pandas 到 "applymap"并访问索引/列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39773833/
1.apply() 当想让方程作用在一维的向量上时,可以使用apply来完成,如下所示 ?
我正在尝试对我的数据集使用 applymap 以将浮点数创建为整数。但是我收到“'Series' 对象没有属性'applymap'”错误。 import pandas as pd import mat
我有一个数据帧,我希望在其中使用第一个即将到来的行来回填所有 NaN 值。我现在的代码是这样的: df[df.applymap(np.isfinite).all(1)] 当我将数据帧减少到 7 列或更
我有 2 个数据框 >>> x 0 1 2 3 0 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 >>> y 0 1
我正在使用 df.to_excel()将数据从 pandas 数据框输出到 Excel。为了提高可读性,我使用 df.style.applymap()根据内容更改单元格的颜色。 想象一下,我有一个如下
我刚刚使用 pandas read_excel 将两个 excel 表加载到 2 个数据帧中。 是否可以使用基于行和列索引的数据框 B 的单元格数据在数据框 A 的单元格上应用映射? 下面是一个例子:
如果我想使用 pandas 更改数据框中的变量名称,我可以不使用 pandas.df.rename() 函数而是使用 applymap() 来更改名称吗例如 Registrar Enrolment
这个问题在这里已经有了答案: How to use Pandas stylers for coloring an entire row based on a given column? (3 个答案
我想在下面的数据集中使用带有一点复杂函数的 applymap 方法。 value1 value2 value3 value4 value5 people 147 119 69
我想做一个简单的操作,将数据框转换为标题。 有一些 NaN 会导致错误,所以我想通过仅在 not null 时应用 str.title() 来避免它们。 但是我收到了无效语法。 df= df.appl
我想尝试 Pandas DataFrame 对象的 applymap 方法的功能。这是用例: 假设我的 DataFrame df1 如下: Age ID Name 0 27 10
我正在尝试比较一个字符串列表的相似性,并在 pandas 数据框中获取结果以供检查;所以我使用一个列表作为索引,另一个作为列列表。然后我想计算它们的“Levenshtein 相似度”(一个比较两个词之
基础 以下操作基于python 3.6 windows 10 环境下 通过 将通过实例来演示三者的区别 toward_dict = {1: '东', 2: '南', 3: '西', 4:
我在数据框上应用了两个函数 res = df.apply(lambda x:pd.Series(list(x))) res = res.applymap(lambda x: x.strip('"')
我有一个 pandas 数据框,我正在使用自定义函数在所有元素上使用 applymap 清理数据,并将清理后的值存储在单独的列中。 tag0 tag1
我有一个分层数据集: df = pd.DataFrame(np.random.rand(6,6), columns=[['A','A','A','B','B','B'],
解决以下 Pandas 问题的最有效方法是什么? 这是一个简化的示例,其中包含数据框中的一些数据: import pandas as pd import numpy as np df = pd.Dat
我是 Pandas 新手。我编写了一个函数,我想将其应用于 pandas DataFrame“Monthly_mean_consump”中的所有条目,下面提供了数据示例。 Time 2010-0
假设我有一个 DataFrame: df = pd.DataFrame({'DATE_1':['2010-11-06', '2010-10-07', '2010-09-07', '2010-05-07
我有一个“年龄”列,但有时会显示 NaN 值。我知道我可以为此目的使用“fillna”,但我尝试定义自己的函数(并学习这样做)并将 applymap 用于数据框 到目前为止没有成功。 Age 69 4
我是一名优秀的程序员,十分优秀!