我正在尝试溢出DataFrame中第一列的最后一个单词,我希望它一直运行到第18个索引
[Basically iam Trying to the last word of the first column till the index where Sector is present in the second column in the attached Image][1]
sec=18
if df['Unnamed: 1'].str.contains('Sector').any():
for sec, row in df.iterrows():
df['Top Holdings']= df['Top Holdings'].str.rsplit(' ',1).str[0]
Ive使用iterrows尝试过,但是使用iterrows和itertuples删除了最后一个单词中的第2个单词,直到第18个索引才运行
尝试将第2列中的第2个单词删除,并且直到第18行才进行迭代,从而取出第一列的最后一个单词,直到第N个索引为止。
答案 0 :(得分:0)
您可以先通过DataFrame.isna
创建掩码,然后使用DataFrame.loc
作为替换值:
<select name='destination' class="form-control" id="CurrFrom" [(ngModel)]="destination">
<option *ngFor="for item in currencies$" [value]="item.id">{{item.currencyName}}</option>
</select>
使用Series.fillna
的另一种解决方案:
df = pd.DataFrame({'Top Holdings':['aaa bb cc d'] * 11,
'Unnamed: 1':[np.nan] * 7 + ['s','d','f'] + [np.nan]})
print (df)
Top Holdings Unnamed: 1
0 aaa bb cc d NaN
1 aaa bb cc d NaN
2 aaa bb cc d NaN
3 aaa bb cc d NaN
4 aaa bb cc d NaN
5 aaa bb cc d NaN
6 aaa bb cc d NaN
7 aaa bb cc d s
8 aaa bb cc d d
9 aaa bb cc d f
10 aaa bb cc d NaN
mask = df['Unnamed: 1'].isna()
df.loc[mask, 'Unnamed: 1']= df.loc[mask, 'Top Holdings'].str.rsplit(n=1).str[0]