Python 合并数据框中的2列,用上一个值填充NAN

Python 合并数据框中的2列,用上一个值填充NAN,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧: State RegionName 0 Alabama Alabama 1 NaN Auburn 2 NaN Florence 3 NaN

我有一个数据帧:

         State                           RegionName
0      Alabama                              Alabama
1          NaN                               Auburn
2          NaN                             Florence
3          NaN                         Jacksonville
4          NaN                           Livingston
5          NaN                           Montevallo
6          NaN                                 Troy
7          NaN                           Tuscaloosa
8          NaN                             Tuskegee
9       Alaska                               Alaska
10         NaN                            Fairbanks
11     Arizona                              Arizona
12         NaN                            Flagstaff
13         NaN                                Tempe
14         NaN                               Tucson
我怎样才能回来

DataFrame([["Alabama", "Auburn"], 
           ["Alabama", "Florence"], .
            .., 
           ["Alaska", "Fairbanks"],  
           ["Arizona", "Flagstaff"],  
           ...], columns=["State", "RegionName"])
那么所有的值都很好地合并了

我已经尝试过:df['State']=df['State'].applylambda x:df['RegionName'],但它缺乏在区域名称启动时为其分配新状态的逻辑。

需要:

你可以试试菲尔娜

df=pd.DataFrame([["Alabama", "Auburn"],
               [np.nan, "Florence"],
               [np.nan, "Fairbanks"],
               ["Arizona", "Flagstaff"]], columns=["State", "RegionName"])
df
Out[94]: 
     State RegionName
0  Alabama     Auburn
1      NaN   Florence
2      NaN  Fairbanks
3  Arizona  Flagstaff


df.fillna(method='ffill')
Out[95]: 
     State RegionName
0  Alabama     Auburn
1  Alabama   Florence
2  Alabama  Fairbanks

在我看来,这似乎不太可能是第一个以.ffill作为答案的问题。@DSM-我认为它是超级的;我想我想暗示的是,一个答案如此简单的问题以前可能被问过,我们应该找到被骗者,而不是再次回答。当我有一秒钟的时间,如果没有其他人,我可以自己找到一个好的目标。你真的很接近df1=df[df['State'!=df['RegionName']],然后使用参数drop=True-df1=df[df['State']!=df['RegionName']]。reset\u indexdrop=True
df=pd.DataFrame([["Alabama", "Auburn"],
               [np.nan, "Florence"],
               [np.nan, "Fairbanks"],
               ["Arizona", "Flagstaff"]], columns=["State", "RegionName"])
df
Out[94]: 
     State RegionName
0  Alabama     Auburn
1      NaN   Florence
2      NaN  Fairbanks
3  Arizona  Flagstaff


df.fillna(method='ffill')
Out[95]: 
     State RegionName
0  Alabama     Auburn
1  Alabama   Florence
2  Alabama  Fairbanks