Py学习  »  Python

将行添加到数据帧python

sector viper • 4 年前 • 1311 次点击  

我有一个包含4列的数据框,如下所示:

nb,state,freebk,freebs
901,1,6,14
903,0,2,18
904,1,10,20
905,1,15,5

我想将状态等于1的所有行添加到一个新的数据帧中

所需的新数据帧:

nb,state,freebk,freebs
    901,1,6,14
    904,1,10,20
    905,1,15,5

我尝试了以下方法

 openStationDF = pd.DataFrame(columns=['nb','state','freebk','freebs'])
    t = 0
    for i in range(len(stationDF)):
        station = stationDF.iloc[i]
        if station[0] == 1:
            openStationDF.loc[t] = station
            t = t + 1

此代码成功添加了state=1的站点,但实际情况是,站点的nb=NaN,站点名称从0开始,然后递增1。

nb         NaN
state      1.0
freebk     6.0
freebs    14.0
Name: 0, dtype: float64
nb         NaN
state      1.0
freebk    10.0
freebs    20.0
Name: 1, dtype: float64
nb         NaN
state      1.0
freebk    15.0
freebs     5.0
Name: 2, dtype: float64

我希望名称等于电台的nb(name=901…)

谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132735
文章 [ 1 ]  |  最新文章 4 年前
Scott Boston
Reply   •   1 楼
Scott Boston    4 年前

使用 query :

df_new = df.query('state == 1')

boolean indexing :

df_new = df[df['state'] == 1]

输出:

    nb  state  freebk  freebs
0  901      1       6      14
2  904      1      10      20
3  905      1      15       5