![](/img/trans.png)
[英]Why does changing one `np.nan` value change all of the nan values in pandas dataframe?
[英]Why am I getting np.NaN values when trying to add a column to a Pandas dataframe?
我有一個熊貓數據框,其中日期信息存儲為字符串。 我想直接從每個日期中提取月份,所以我嘗試了以下操作:
import pandas as pd
df = pd.DataFrame([['2015-04-16', 5], ['2014-05-01', 6]],columns = ['date','units'])
df['month'] = df['month'].str[5,7]
print(df)
這給出了以下輸出
date units month
0 2015-04-16 5 NaN
1 2014-05-01 6 NaN
NaN的dtype是float,我不知道為什么。 為什么不只用子字符串創建另一列?
如果你想切片每個字符串獲得子5至7,你需要:
,而不是一個,
:
>>> df = pd.DataFrame([['2015-04-16', 5], ['2014-05-01', 6]],columns = ['date','units'])
>>> df['month'] = df['date'].str[5:7]
>>> print(df)
date units month
0 2015-04-16 5 04
1 2014-05-01 6 05
我認為您的問題是您的切片無效:
In [7]:
df = pd.DataFrame([['2015-04-16', 5], ['2014-05-01', 6]],columns = ['date','units'])
df['date'].str[5,7]
Out[7]:
0 NaN
1 NaN
Name: date, dtype: float64
與此比較:
t='2015-04-16'
t[5,7]
這引發了:
TypeError:字符串索引必須是整數
我想你想要:
In [18]:
df = pd.DataFrame([['2015-04-16', 5], ['2014-05-01', 6]],columns = ['date','units'])
df['month'] = df['date'].str[5:7]
df
Out[18]:
date units month
0 2015-04-16 5 04
1 2014-05-01 6 05
因此,由於這是無效操作,因此熊貓返回NaN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.