python - 对 Pandas DataFrame.apply() 的困惑
问题描述
假设我编写了代码:
df2 = pd.DataFrame(np.random.randint(1,5,4).reshape((2,2)), columns=['A', 'B'])
print("dataframe: \n", df2)
print("mean: \n", df2.mean(0))
df2 = df2.apply(lambda x: x - [1, 2], axis=0)
print("altered df2: \n", df2)
它给了我结果:
dataframe:
A B
0 1 1
1 2 2
mean:
A 1.5
B 1.5
dtype: float64
altered df2:
A B
0 0 0
1 0 0
所以首先,我要求它给我一个平均数axis=0
。在我看来,这意味着将每一行视为一个向量并找到这些向量的平均值。熊猫似乎同意我的这一点!
但是,我随后使用该DataFrame.apply()
函数,并再次指定axis=0
. 在这里,我希望相同的逻辑可以工作,即对每一行执行一个操作。在这种情况下lambda x: x - [1, 2]
。我期望的结果是:
A B
0 0 -1
1 1 0
但是,当我指定axis=0(行)时,它实际上对列进行了操作。
我在使用 pandas 时遇到了困难,特别是围绕它如何索引行和列,这进一步增加了混乱。就目前而言,每次我认为我了解事情的运作方式时,我都会发现我错了,所以我的大脑中没有任何东西。我正在寻求一种简单的方法来思考这些东西,这样它就可以留在我有阅读障碍的小脑袋里。
解决方案
推荐阅读
- java - JAXB 元素的属性
- php - PHP - 包括一个放在类变量中的类
- sparql - SPARQL Wikidata 查询服务中变量字符串的精确匹配
- javascript - 将 ISO-8859-1 编码字节转换为 UTF-8
- java - Kafka SinkRecord 到 Avro 对象
- android - payfort sdk_token 生成上的签名不匹配错误
- java - 我必须编写一个程序来收集高度和序列号并输出 maxq min
- c# - 在其他计算机上恢复数据库需要创建一个主密钥
- java - 如何使用 jdbc 从数据库中加载对象列表
- python - 如何将用户输入与字典的键进行比较?