当前位置: 首页 > 知识库问答 >
问题:

熊猫:检查和更改列中的所有项目

冀翰翮
2023-03-14

我试着运行一段代码,在pandas数据帧中遍历一列,如下所示:

for item in df['delta']:
    if float(item) < 0:
        print(item)

每当我检测到一个值小于0的项目时,我都想加上1,000,000,并将结果放回dataframe中。

我试着这样做:

df['delta'][item] = float(item) + 1000000

但是我得到了一个关键错误。

如何访问for循环的当前位置?

共有2个答案

周宏伯
2023-03-14

为此,我建议使用内置的< code>apply()函数:

df['delta'] = df['delta'].apply( lambda item: float(item) + 1000000 if float(item) < 0 else item )
庾和昶
2023-03-14

假设你有

    df = pd.DataFrame({'col_1': [0,1,2,3,4,5,-1,-2,-3]})
   col_1
0      0
1      1
2      2
3      3
4      4
5      5
6     -1
7     -2
8     -3

您可以简单地使用<code>loc</code>和<code>=

df.loc[df['col_1'] < 0, 'col_1'] += 10
   col_1
0      0
1      1
2      2
3      3
4      4
5      5
6      9
7      8
8      7
 类似资料:
  • 我有一个由6列组成的数据框。生成矩阵的最快方法是什么,该矩阵具有以下功能: 步骤1)col1*col1a, col2*col2a, col3*col3a, col4*col4a 步骤2)col_new=(col1*col1a)-col2*col2a)/(col1a-col2a) 使用for循环是选择之一——但是有什么方法可以更快地实现这一点。 我需要有1x3,1x4,1x5,2x3,2x4等等的列

  • 我刚接触熊猫,似乎无法使用合并功能: 对于列a上的左连接,我想通过连接键更新公共列。注:c列中的最后一个值来自左表,因为不存在匹配项。 我应该如何使用Pandas merge函数来实现这一点?非常感谢。

  • 问题内容: 有没有一种方法可以检查Pandas DataFrame中是否存在列? 假设我有以下DataFrame: 我想计算 但是首先我要检查是否存在,如果不存在,我要计算。 问题答案: 这将起作用: 但是为了清楚起见,我可能将其写为:

  • 问题内容: 我有一个数据框,其中包含一列ID,其他所有列都是我要为其计算z分数的数值。这是它的一个小节: 我的某些列包含不希望包含在z分数计算中的NaN值,因此我打算使用提供给此问题的解决方案:如何使用nans将zscore归一化熊猫列? 我有兴趣将此解决方案应用于除ID列之外的所有列,以生成新的数据框,我可以使用以下格式将其另存为Excel文件: 所以基本上 如何计算每列的z分数(忽略NaN值)

  • 我正在尝试更改数据框中一些列的名称。下面的代码可以更改除一列以外的所有列的名称。行为不端列的名称前后没有空格()。我想不出是什么问题。感谢您的建议。

  • 我有一个如下所示的数据帧: 如何获取除之外的所有列?