将序列分配给数据帧列时的新空值

2024-09-26 22:51:06 发布

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

我不明白为什么在将一个dataframe列指定为一个原本没有空值的序列之后会出现新的空值。举个例子:

df.date_col.shape返回(100000,)
df.date_col.isnull().sum()返回0

然后创建一个大小相同的新系列:
new_series = pd.Series([int(d[:4]) for d in df.date_col])
new_series.shape返回(100000,)
new_series.isnull().sum()返回0

但是如果我尝试将这个新系列分配给原始列:
df.date_col = new_series
df.date_col.isnull().sum()返回6328

有人能告诉我这里发生了什么事吗


Tags: dataframedfnewdate序列col例子series
1条回答
网友
1楼 · 发布于 2024-09-26 22:51:06

IIUC,您的索引不是continue,当您创建pd.Series时,它自动将索引从0分配到len(s)-1,dataframe assign基于索引,index miss match将创建NaN

df=pd.DataFrame({'col':[1,2,3]},index=[1,2,3])


s=pd.Series([d*2 for d in df.col])

df['New']=s

df
Out[170]:
   col  New
1    1  4.0
2    2  6.0
3    3  NaN


df['New2']=s.values
df
Out[172]: 
   col  New  New2
1    1  4.0     2
2    2  6.0     4
3    3  NaN     6

相关问题 更多 >

    热门问题