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

如何替换数据帧中而不是列表中的所有值?[副本]

壤驷涛
2023-03-14

我有一份价值观清单。如何替换Dataframe列中不在给定值列表中的所有值?

例如

>>> df = pd.DataFrame(['D','ND','D','garbage'], columns=['S'])
>>> df
      S
0    D
1    ND
2    D
3  garbage

>>> allowed_vals = ['D','ND']

我想用“无”替换数据框S列中不在允许值列表中的所有值。我该怎么做?

共有1个答案

公西培
2023-03-14

您可以使用isin检查allowed_list中的成员资格,~来否定这一点,然后. loc来修改该系列:

>>> df.loc[~df["S"].isin(allowed_vals), "S"] = "None"
>>> df
      S
0     D
1    ND
2     D
3  None

因为

>>> df["S"].isin(allowed_vals)
0     True
1     True
2     True
3    False
Name: S, dtype: bool

如果要修改整个帧(而不仅仅是列),可以制作帧大小的遮罩:

>>> df
         S   T
0        D   D
1       ND   A
2        D  ND
3  garbage   A
>>> df[~df.isin(allowed_vals)] = "None"
>>> df
      S     T
0     D     D
1    ND  None
2     D    ND
3  None  None
 类似资料:
  • 我在pyspark中有一个超过300列的数据帧。在这些列中,有些列的值为null。 例如: 当我想对列u 1求和时,结果得到的是Null,而不是724。 现在,我想用空格替换数据框所有列中的null。因此,当我尝试对这些列求和时,我不会得到null值,但会得到一个数值。 我们如何在pyspark中实现这一点

  • 当我尝试将函数应用于Amount列时,我得到以下错误: 我试过使用Math模块中的.isnan应用函数我试过使用pandas.replace属性我试过使用pandas0.9中的.sparse data属性我也试过使用函数中的if NaN==NaN语句。我还看了这篇文章,如何在R数据帧中用0替换NA值?同时查看一些其他文章。我试过的所有方法都不起作用,或者不认识南。如有任何提示或解决方案,将不胜感激

  • 我正在尝试连接两个apache spark sql DataFrame,并将第一个数据帧的列值替换为另一个。如: 我需要执行左连接并将 DF1.col1 的值替换为 DF2.col3,其中 DF1.col1 = DF2.col1。我不知道该怎么做。此外,如上例所示,DF1 除了“col1”和“col2”之外还有更多列,我无法对所有列都应用 select。我正在尝试类似的东西, 但这似乎行不通。另外

  • 本文向大家介绍如何将NA替换为R数据帧中选定列的值?,包括了如何将NA替换为R数据帧中选定列的值?的使用技巧和注意事项,需要的朋友参考一下 在数据分析中,在数据框中查找某些NA值非常普遍,但如果包含NA值的列对分析无用,则所有NA值都不会产生问题。我们可以将所有NA值替换为0或将其他有用的列替换为其他值。 示例 请看以下数据帧- 将NA的连续列更改为零- 将NA的非连续列更改为零-

  • 我有一个列中所有值都不同的列表,我需要用1替换该列表中不存在的所有值 这是我在python中所做的工作:

  • 用其他dataframe的列值替换dataframe的一列中的nan值时出现问题。下面是一个测试示例: 我想用其他dataframe中的特定值替换列名中的Nan值(如果其中有一些Nan值,则不是其他列),例如此dataframe中的Name2值: 我想得到的是: 这是此示例的测试代码: 然后我尝试了这三种方法,但都不起作用——我的数据帧始终保持Nan值。 你能告诉我哪里出错了吗?