我是Python和Pandas库的初学者,我对DataFrame的一些基本功能感到困惑。我有一个pandas DataFrame如下:
>>>df.head()
X Y unixtime
0 652f5e69fcb3 1 1346689910622
1 400292 1 1346614723542
2 1c9d02e4f14e 1 1346862070161
3 610449 1 1346806384518
4 207664 1 1346723370096
然而,在我执行了一些功能之后:
def unixTodate(unix):
day = dt.datetime.utcfromtimestamp(unix/1000).strftime('%Y-%m-%d')
return day
df['day'] = df['unixtime'].apply(unixTodate)
我无法再使用df.head()函数:
>>>df.head()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 190648 to 626582
Data columns:
X 5 non-null values
Y 5 non-null values
unixtime 5 non-null values
day 5 non-null values
dtypes: int64(3), object(5)
我不明白为什么会这样。我在这里做错了吗?欢迎任何指针!感谢。
答案 0 :(得分:19)
df.head(n)
返回持有前n行df的DataFrame
。
现在默认显示DataFrame
pandas检查终端的宽度,如果这个太小而无法显示DataFrame
摘要视图将会显示。这是你在第二种情况下得到的。
您可以通过pd.set_printoptions(max_columns=10)
增加终端的尺寸,还是禁用列上的自动检测?
答案 1 :(得分:1)
DataFrame.head(n=5)
返回前n行。
此函数根据位置返回对象的前n行。对于快速测试对象中的数据类型是否正确非常有用。
参数:
n : int, default 5
要选择的行数。
返回:
obj_head : type of caller
调用者对象的前n行。
答案 2 :(得分:0)
尝试以下代码段:
from IPython.display import display
display(df.head())