【问题标题】:Replacing an unknown number in Pandas data frame with previous number用以前的数字替换 Pandas 数据框中的未知数字
【发布时间】:2017-08-12 11:03:53
【问题描述】:

我有一些数据框正在尝试上传到数据库。它们是值列表,但某些列中包含字符串“null”,因此这会导致错误。

所以我想使用一个函数来删除这些“空”字符串,并尝试使用替换来回填它们:

df.replace("null", method = bfill)

但它给了我错误信息:

ParserError: Error tokenizing data. C error: Expected 1 fields in line 4, saw 2

我也试过用“bfill”代替,它只是用字符串“bfill”替换了“null”。

任何帮助表示赞赏。

谢谢。

抱歉应该提供一个例子:

1     6     11
2     7     12
null  null  null
4     9     14
5     10    15

【问题讨论】:

  • 您可以添加一些数据样本(4-5 行)吗?
  • 如果使用read_csv的参数是什么?

标签: python python-3.x pandas dataframe


【解决方案1】:

我认为你需要replace 字符串nullNaNs 然后调用bfillfillnamethod='bfill')如果有一些NaNs 在数据末尾添加ffill前向填充:

df = df.replace("null",np.nan).bfill().ffill()

但您的错误显然出在read_csv 函数中,请检查第 4 行 - 解析器只需要一个值,由于某种原因有 2 个值。

示例

df = pd.DataFrame({'A':['k','null','n','null','null','m'],
                   'B':['t','null','null','f','null','s'],
                   'C':['r','t','null','s','null','null']})

print (df)
      A     B     C
0     k     t     r
1  null  null     t
2     n  null  null
3  null     f     s
4  null  null  null
5     m     s  null

print (df.replace("null",np.nan))
     A    B    C
0    k    t    r
1  NaN  NaN    t
2    n  NaN  NaN
3  NaN    f    s
4  NaN  NaN  NaN
5    m    s  NaN
df1 = df.replace("null",np.nan).bfill()
print (df1)
   A  B    C
0  k  t    r
1  n  f    t
2  n  f    s
3  m  f    s
4  m  s  NaN
5  m  s  NaN

#if some `NaN`s in last row is necessary `ffill`
df2 = df.replace("null",np.nan).bfill().ffill()
print (df2)
   A  B  C
0  k  t  r
1  n  f  t
2  n  f  s
3  m  f  s
4  m  s  s
5  m  s  s

【讨论】:

  • 感谢 Jezrael 的工作。虽然我应该像其他 cmets 建议的那样提供一个示例,因为这些值是浮点数。
  • 很高兴能帮上忙!是的,样本很有帮助;)
【解决方案2】:

借用@jezrael 的样本数据集:

In [11]: df[df.ne('null')].bfill().ffill()
Out[11]:
   A  B  C
0  k  t  r
1  n  f  t
2  n  f  s
3  m  f  s
4  m  s  s
5  m  s  s

【讨论】:

    猜你喜欢
    • 2013-06-11
    • 2012-12-30
    • 2018-07-11
    • 2022-06-24
    • 2021-04-30
    • 2017-03-23
    • 2014-02-28
    • 1970-01-01
    • 2020-05-20
    相关资源
    最近更新 更多