我正在使用交易数据库查询集,但无法提取特定的付款日期,因此我试图用python编写代码来为我分配日期。我的第一个想法是在excel中执行此操作,但是数据集是800,000+行X 100+列,因此以任何其他方式执行此操作都不切实际。数据集在付款列的某些行中具有值,因此我需要添加一个日期列,该日期列仅在包含付款金额的行中具有日期。
我已经创建了所有列来存储日期,我的想法是遍历行并分配一个日期,如果该行包含的值大于零(因为列中有0以及NULL)值)。
df['Payment Date] = ''
for value in df:
if value > 0 :
df['Payment Date'] = '06/01/2019'
我希望输出中的日期分配给付款日期列中具有实际值的行。
答案 0 :(得分:0)
如果我的理解正确,您正在尝试(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'
哪个可以给您想要的结果。