我有一个数据帧,它有两个数据类型:对象(需要字符串)和日期时间(需要日期时间)。我不理解这种行为以及它为什么会影响我的Fillna()。
使用inplace=true调用.fillna()将擦除指示为int64的数据,尽管使用.astype(str)进行了更改
调用.fillna()而不使用它则不起任何作用。
我知道pandas/numpy数据类型与python本地的不同,但它是正确的行为还是我遇到了严重错误?
样本:
import random
进口麻木
sample=pd.dataframe('a':[random.choice(['aabb',np.nan,'bbcc','ccdd']),用于范围(15)中的x,
‘B’:范围(15)内x的[随机选择(['2019-11-30'、'2020-06-30'、'2018-12-31'、'2019-03-31'])
sample.loc[:,'b']=pd.to_datetime(sample['b'])
< /代码>
for col in sample.select_dtypes(include='object').columns.tolist():
sample.loc[:,col].astype(str).apply(lambda x:str(x).strip().lower()).fillna('null')
对于sample.columns中的col:
打印(sample[col].value_counts().head(15))。
打印('\n)
< /代码>
这里既不显示“空”也不显示“nan”。已添加。替换(“nan”,“null”),但仍然为空。你能告诉我找什么吗?多谢。
=
使用inplace=true调用.fillna()将擦除指示为int64的数据,尽管使用.astype(str)进行了更改。
不使用它调用.fillna()什么也不做。
我知道pandas/numpy数据类型与python本地的不同,但它是正确的行为还是我遇到了严重错误?
样品:
import random
import numpy
sample = pd.DataFrame({'A': [random.choice(['aabb',np.nan,'bbcc','ccdd']) for x in range(15)],
'B': [random.choice(['2019-11-30','2020-06-30','2018-12-31','2019-03-31']) for x in range(15)]})
sample.loc[:, 'B'] = pd.to_datetime(sample['B'])
for col in sample.select_dtypes(include='object').columns.tolist():
sample.loc[:, col].astype(str).apply(lambda x: str(x).strip().lower()).fillna('NULL')
for col in sample.columns:
print(sample[col].value_counts().head(15))
print('\n')
这里既不显示“空”也不显示“nan”。已添加。替换(“nan”,“null”),但仍然为空。你能告诉我找什么吗?多谢。