根据其他列中的值替换pandas datafram中所有行的列值

2024-05-13 21:05:35 发布

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

我很难用通灵的方式思考一些事情,我很想得到一些指导。

我有一个dataframe,它包含一些列,这些列包含应该上载某些文件的事件日期,还有一个列包含这些事件的名称。所以事件可以是X,Y,Z,文件可以是1,2,3。

并非所有文件都需要在所有事件中上载,即如果是事件X,则需要上载文件1、2和3,但如果是事件Y,则只需要上载文件3。日期列中要么有日期,要么为空。

我想做的是,对于不需要的事件的所有文件,将blank替换为“不需要”。

首字母:

    File1   File2  File3
X   Aug 1          Sept 1
X   Aug 3   Aug 4  Sept 9
Y                  Sept 10
Z   Aug 12
X   Aug 13  Aug 15
Z   Aug 1

目标

     File1   File2  File3
X   Aug 1          Sept 1
X   Aug 3   Aug 4  Sept 9
Y   NN      NN     Sept 10
Z   Aug 12  NN     NN
X   Aug 13  Aug 15
Z   Aug 1   NN     NN

因此,对于不期望文件的空白,请用“不需要”替换该值,而只剩下其他空白。

我试过用.replace(),.apply()函数来实现,但没有成功。

下面的代码可以工作,但它不仅在有匹配项时工作,而且在没有匹配项时也工作。

Fill in descriptive text for scales not collected at certain visits (where upload dates would be blank)
df_combined['FAQ-Audio-upDate'] = np.where(df_combined['VisitName'] == "Screening", "FAQ Not Expected", "")
df_combined['FAQ-Form-upDate'] = np.where(df_combined['VisitName'] == "Screening", "FAQ Not Expected", "")

如何在整个数据帧中基于另一列中的值更改一列中的值?我想要的基本上是:

对于数据帧中的每一行 如果VisitName列中的值=X 将ColumnA中的值更改为“Not Expected” enter image description here
谢谢您!!


Tags: 文件df事件notnnwherefile1aug