Python 3.x Pandas:迭代数据帧并根据条件应用更改

Python 3.x Pandas:迭代数据帧并根据条件应用更改,python-3.x,pandas,dataframe,data-science,data-cleaning,Python 3.x,Pandas,Dataframe,Data Science,Data Cleaning,我必须遍历column=0,如果我在column=0中找到任何整数,如20102018217等,我必须将其作为年份分配给column=0中的所有值 PS:-column=0是对象数据类型 我的DF: 01 南岸 国民银行安讯士银行 南伊奇 南太平洋 2010 KYB 印度南部 南卡鲁尔 我的期望输出: 01 2010年银行 2010年安讯士银行 2010年ICICI 2010年PNB 2010 KYB 2010印度河 2010 Karur将列转换为数字by,然后将范围之外的所有数字转换为缺少的值

我必须遍历column=0,如果我在column=0中找到任何整数,如20102018217等,我必须将其作为年份分配给column=0中的所有值

PS:-column=0是对象数据类型

我的DF: 01
南岸 国民银行安讯士银行 南伊奇 南太平洋 2010 KYB 印度南部 南卡鲁尔

我的期望输出: 01
2010年银行 2010年安讯士银行 2010年ICICI 2010年PNB 2010 KYB 2010印度河
2010 Karur

将列转换为数字by,然后将
范围
之外的所有数字转换为缺少的值,转换为
NaN
s by,使用掩码by:


欢迎来到StackOverflow。请花点时间阅读这篇文章以及如何提供答案并相应修改您的问题:)如果
Nan
之后的
National Bank
2015
,那么预期的结果是什么?首先,感谢jezrael抽出时间……我只想替换所有(包括Nan,National Bank)列=0中的值与我得到的整数值(例如2010年)相同。上述答案部分有用…我想用我得到的整数值(例如20102011ETC)替换列=0的值…我们是否应该使用iteritems()?@HarshaRagyari-列中始终只有一年?如果是,那么使用
df[0]=s.where(s.isin(range(201020))).dropna().iat[0]
@HarshaRagyari-如果可能的话,使用多个值然后
df[0]=s.where(s.isin(range(201020)).ffill().bfill()
应该会有帮助。Ty,我现在可以得到我想要的输出了。。t=pd.to_numeric(df[0],errors='concurve')t df[0]=t.where(t.isin(range(20052020)).dropna().values[0]df[0]
s = pd.to_numeric(df[0], errors='coerce')
df[0] = s.where(s.isin(range(2010, 2020)))
print (df)
        0          1
0     NaN      Banks
1     NaN  Axis Bank
2     NaN      ICICI
3     NaN        PNB
4  2010.0        KYB
5     NaN  Indus Ind
6     NaN      Karur