我喜欢在熊猫中使用.head()和.tail()函数来环境显示一定数量的行(有时候我想要更少,有时我想要更多!).但有没有办法用DataFrame的列做到这一点?
是的,我知道我可以更改显示选项,如:
pd.set_option('display.max_columns', 20)
但这太过笨重了,不能随时改变,无论如何,它只会取代.head()功能,而不是.tail()功能.
我也知道这可以使用访问器来完成:
yourDF.iloc[:,:20]模拟.head(20)和yourDF.iloc[:,-20:]模拟.tail(20).
它可能看起来像一个短的代码,但老实说,它不像我使用.head()那样直观或快捷.
这样的命令存在吗?我找不到一个!
unu*_*tbu 13
不,这些方法不是由Pandas提供的,但是很容易自己制作这些方法:
import pandas as pd
def front(self, n):
return self.iloc[:, :n]
def back(self, n):
return self.iloc[:, -n:]
pd.DataFrame.front = front
pd.DataFrame.back = back
df = pd.DataFrame(np.random.randint(10, size=(4,10)))
Run Code Online (Sandbox Code Playgroud)
所以现在所有的 DataFrame都拥有这些方法:
In [272]: df.front(4)
Out[272]:
0 1 2 3
0 2 5 2 8
1 9 9 1 3
2 7 0 7 4
3 8 3 9 2
In [273]: df.back(3)
Out[273]:
7 8 9
0 3 2 7
1 9 9 4
2 5 7 1
3 3 2 5
In [274]: df.front(4).back(2)
Out[274]:
2 3
0 2 8
1 1 3
2 7 4
3 9 2
Run Code Online (Sandbox Code Playgroud)
如果您将代码放在实用程序模块中,比如说utils_pandas.py,那么可以使用import语句激活它:
import utils_pandas
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11582 次 |
| 最近记录: |