Pandas fillna是否有列数和行数限制?

Pandas fillna是否有列数和行数限制?,pandas,fillna,Pandas,Fillna,我在4253532行×151列的数据帧中使用了Pillna,它不起作用。返回的是没有变化的df。我尝试了不同的方法,都保持了df不变 相同的代码在3741814行×4列数据帧中运行良好 df2=df.fillna(方法='ffill',轴=1) df.fillna(值=10,inplace=True) 我尝试返回一个新的df和inplace,两者都不起作用 我确信每行至少有一个有效值。 有人遇到同样的问题吗?熊猫有限制吗 更多信息\ df: 数据类型: b.dtypes ITEM_OBJECT

我在4253532行×151列的数据帧中使用了Pillna,它不起作用。返回的是没有变化的df。我尝试了不同的
方法
,都保持了df不变
相同的代码在3741814行×4列数据帧中运行良好

df2=df.fillna(方法='ffill',轴=1)

df.fillna(值=10,inplace=True)

我尝试返回一个新的df和inplace,两者都不起作用
我确信每行至少有一个有效值。
有人遇到同样的问题吗?熊猫有限制吗

更多信息\

df:

数据类型:

b.dtypes

ITEM_OBJECT_ID
8000001    float64
8000016    float64
8000017    float64
8000018    float64
8000019    float64
dtype: object
是楠:

print(np.isnan(b).to_markdown())

|         |   8000001 |   8000016 |   8000017 |   8000018 |   8000019 |
|--------:|----------:|----------:|----------:|----------:|----------:|
| 4253527 |         0 |         1 |         1 |         1 |         1 |
| 4253528 |         1 |         1 |         1 |         1 |         1 |
| 4253529 |         1 |         1 |         1 |         1 |         1 |
| 4253530 |         1 |         1 |         1 |         1 |         1 |
| 4253531 |         1 |         1 |         1 |         1 |         1 |
菲尔娜:

print(b.fillna(100).to_markdown())

|         |       8000001 |   8000016 |   8000017 |   8000018 |   8000019 |
|--------:|--------------:|----------:|----------:|----------:|----------:|
| 4253527 |   2.00711e+07 |       nan |       nan |       nan |       nan |
| 4253528 | nan           |       nan |       nan |       nan |       nan |
| 4253529 | nan           |       nan |       nan |       nan |       nan |
| 4253530 | nan           |       nan |       nan |       nan |       nan |
| 4253531 | nan           |       nan |       nan |       nan |       nan |

print(b.fillna(method='ffill',axis=1).to_markdown())

|         |       8000001 |   8000016 |   8000017 |   8000018 |   8000019 |
|--------:|--------------:|----------:|----------:|----------:|----------:|
| 4253527 |   2.00711e+07 |       nan |       nan |       nan |       nan |
| 4253528 | nan           |       nan |       nan |       nan |       nan |
| 4253529 | nan           |       nan |       nan |       nan |       nan |
| 4253530 | nan           |       nan |       nan |       nan |       nan |
| 4253531 | nan           |       nan |       nan |       nan |       nan |


据我所知,熊猫是没有限制的。我在数百万行的数据帧上使用了fillna方法,没有任何问题

例如:

import pandas as pd
import random
import numpy as np



df = pd.DataFrame(
        {
                'A' : [random.choice([np.nan] + list(range(10))) for x in range(int(1e6))],
                'B' : [random.choice([np.nan] + list(range(10))) for x in range(int(1e6))],
                'C' : [random.choice(['a', 'b', 'c'])  for x in range(int(1e6))]
        }
)
df = df.fillna("bla")
print(
      df[(df.values=="bla").any(axis=1)]
      )

它也适用于1e7行。所以,这可能是您的第一个数据帧中的一个问题?

您能详细说明一下“它不工作”吗?你有例外吗/你没有得到你期望的结果吗。。。实际上发生了什么?你没有错过它返回一个新的数据帧吗?(未更改)->df=df.fillna(method=“ffill”,axis=1)谢谢!我复制了数据帧的一部分并显示了每个步骤,但我找不到问题出在哪里。您是否尝试过.replace(“nan”,“dummy”)检查它是否未转换为str?它不能替换为b.replace('nan','str'),但可以替换为b.replace({np.nan:'str')。我尝试先运行c=b.replace({np.nan:None}),然后运行c.fillna(method='ffill')!我不知道为什么,虽然这个问题只在这个df中出现(所有数据帧都是由一个脚本生成的)。。。您是否尝试在此数据帧中收集一个NaN值(使用类似df.loc[0,“blah”])并打印它?我似乎记得有一次,我在NaN和NaN的多个构造函数(在pandas中显示相同但不等效)方面遇到了问题……它们在.replace({np.NaN:None})之前/之后具有np.NaN或None的一般属性。.fillna()中似乎出现了问题。非常感谢你!
import pandas as pd
import random
import numpy as np



df = pd.DataFrame(
        {
                'A' : [random.choice([np.nan] + list(range(10))) for x in range(int(1e6))],
                'B' : [random.choice([np.nan] + list(range(10))) for x in range(int(1e6))],
                'C' : [random.choice(['a', 'b', 'c'])  for x in range(int(1e6))]
        }
)
df = df.fillna("bla")
print(
      df[(df.values=="bla").any(axis=1)]
      )