如果另一列中存在任何大于0的值,则需要为数据帧赋值

2024-09-27 09:37:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个事务数据库查询集,无法提取付款的特定日期,因此我尝试用python编写一个代码来为我分配日期。我的第一个想法是在excel中完成,但是数据集是800000+行x100+列,所以用其他方法来实现这一点是不实际的。数据集在payments列的某些行中有值,因此我需要添加一个date列,该列只在包含paymentamount的行中包含日期。你知道吗

我已经创建了所有的列来存储日期,我的想法是在行中循环,如果该行包含大于零的值(因为列中有0,也有空值),则指定一个日期。你知道吗

df['Payment Date] = ''

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

我希望输出将日期分配给payment date列中具有实际值的行。你知道吗


Tags: 数据方法代码数据库dfdatevaluepayment
1条回答
网友
1楼 · 发布于 2024-09-27 09:37:01

如果我理解正确的话,您正在尝试(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'

这会给你想要的结果。你知道吗

相关问题 更多 >

    热门问题