python - 如果另一列中存在任何大于 0 的值,则需要将值分配给数据框

标签 python pandas dataframe for-loop

我正在使用交易数据库查询集,并且无法提取特定的付款日期,因此我尝试在 python 中编写一些代码来为我分配日期。我的第一个想法是在 Excel 中执行此操作,但数据集有 800,000+ 行 X 100+ 列,因此以其他方式执行此操作是不切实际的。数据集在付款列的某些行中具有值,因此我需要添加一个日期列,其中的日期仅在包含付款金额的行中。

我已经创建了所有列来存储日期,我的想法是循环遍历行并分配一个日期,如果该行包含大于零的值(因为列中有 0,以及 NULL值)。

df['Payment Date] = ''

for value in df:
    if value > 0 :
        df['Payment Date'] = '06/01/2019'

我希望输出将日期分配给付款日期列中具有实际值的行。

最佳答案

如果我理解正确,您将尝试 (1) 识别数据框中值大于零的行,以及 (2) 为所有这些行的新列分配特定日期。

首先,为了重现性和清晰度,让我们生成一些代表您的数据集的随机数据:

import pandas as pd

# Generate a random 5x4 Dataframe
df = pd.DataFrame(np.random.randn(5,4), columns=list('ABCD'))

# Set many of the values to zero 
df[df > 0] = 0

现在,我们要创建一个新列来存储所需的日期:

df['Payment Date'] = ''
最后,将该列设置为包含任何大于零的值的所有行所需的日期(请注意,这要求所有行的总和(跳过 N/As)大于零,这是测试的条件如下):

row_inds = df.sum(axis=1, skipna=True)>0
df.loc[row_inds, 'Payment Date'] = '06/01/2019'

这会给你想要的结果。

关于python - 如果另一列中存在任何大于 0 的值,则需要将值分配给数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56820351/

相关文章:

python - 在Python中,如果以元组中的值开头,我还需要返回哪个值

python - 使用 Python 查找文件大小的字符串中数组字符串的频率

python - 尝试在 Google App Engine 项目中创建备份时出现 404

python - pandas.concat 产生所有 NaN

python - 将函数应用于返回多行的 pandas 数据框

python - 使用 pandas 从 csv 创建数据框

python - 当且仅当 Python 不存在文件时,才安全地创建文件

pandas - 如何将 .fits 文件/astropy 表转换为 pandas df 和反向?

python - Groupby相邻行 Pandas 的条件总和

python - Pandas 按位置覆盖列名