Pandas 如何将数据帧设置为等于一行?

Pandas 如何将数据帧设置为等于一行?,pandas,Pandas,我知道如何将pandas数据帧设置为一列。 i、 e: 一行的等价物是什么?比如说拿指数?我会消除其中的一个或多个吗 非常感谢。如果您想复制一行,则可以使用loc进行标签索引,或者使用iloc进行基于整数的索引: In [104]: df = pd.DataFrame({'a':np.random.randn(10),'b':np.random.randn(10)}) df Out[104]: a b 0 1.216387 -1.298502 1 1.0

我知道如何将pandas数据帧设置为一列。 i、 e:

一行的等价物是什么?比如说拿指数?我会消除其中的一个或多个吗


非常感谢。

如果您想复制一行,则可以使用
loc
进行标签索引,或者使用
iloc
进行基于整数的索引:

In [104]:
df = pd.DataFrame({'a':np.random.randn(10),'b':np.random.randn(10)})
df

Out[104]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
3  0.531293 -0.386598
4 -0.278565  1.224272
5  0.491417 -0.498816
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186

In [106]:
row = df.iloc[3]
row

Out[106]:
a    0.531293
b   -0.386598
Name: 3, dtype: float64
如果要删除该行,则可以使用
drop

In [107]:
df.drop(3)

Out[107]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
4 -0.278565  1.224272
5  0.491417 -0.498816
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186
In [110]:
df.drop([3,5])

Out[110]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
4 -0.278565  1.224272
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186
In [112]:
df.drop(df.index[3:5])

Out[112]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
5  0.491417 -0.498816
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186
还可以使用切片或传递标签列表:

In [109]:
rows = df.loc[[3,5]]
row_slice = df.loc[3:5]
print(rows)
print(row_slice)
          a         b
3  0.531293 -0.386598
5  0.491417 -0.498816
          a         b
3  0.531293 -0.386598
4 -0.278565  1.224272
5  0.491417 -0.498816
类似地,您可以将列表传递给
drop

In [107]:
df.drop(3)

Out[107]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
4 -0.278565  1.224272
5  0.491417 -0.498816
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186
In [110]:
df.drop([3,5])

Out[110]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
4 -0.278565  1.224272
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186
In [112]:
df.drop(df.index[3:5])

Out[112]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
5  0.491417 -0.498816
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186
如果要删除一个切片,则可以对索引进行切片并将其传递给
drop

In [107]:
df.drop(3)

Out[107]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
4 -0.278565  1.224272
5  0.491417 -0.498816
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186
In [110]:
df.drop([3,5])

Out[110]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
4 -0.278565  1.224272
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186
In [112]:
df.drop(df.index[3:5])

Out[112]:
          a         b
0  1.216387 -1.298502
1  1.043843  0.379970
2  0.114923 -0.125396
5  0.491417 -0.498816
6  0.222941  0.183743
7  0.322535 -0.510449
8  0.695988 -0.300045
9 -0.904195 -1.226186

你能澄清你的意思吗?如果你问如何只得到一行,那么你可以做一些类似于
row=df.iloc[x]
的事情,其中x是索引范围中的某个整数,这正是我所要求的。我编辑了询问如何删除此行的问题。如果你能把所有的问题都写进一个答案,就可以完全解决这个问题了