我以熊猫为单位反转了数据,我想将头和尾同时打印在顶部,而在尾部不打印列。
代码:
import datetime
import itertools as it
import numpy as np
import csv
start = datetime.datetime(1996, 12, 16)
end = datetime.datetime(2019, 4, 4)
df = pd.read_csv('Filename.txt')
df.columns = ['C1','c2','c3','c4']
df = df.set_index('C1')
reversed_df = df.iloc[::-1]
print(reversed_df.head(),reversed_df.tail())
输出:
c2 c3 c4
C1
1900-12-16 8 0 0
1900-12-17 8 0 1
1900-12-18 8 0 2
1900-12-19 8 0 3
1900-12-20 8 0 4 c2 c3 c4
C1
2000-03-30 8 0 5
2000-03-31 8 0 6
2000-04-01 8 0 7
2000-04-02 8 0 8
2000-04-03 8 0 9
我想摆脱尾巴上方的第二个(C1,c2,c3,c4)。所以输出如下所示。
c2 c3 c4
C1
1900-12-16 8 0 0
1900-12-17 8 0 1
1900-12-18 8 0 2
1900-12-19 8 0 3
1900-12-20 8 0 4
2000-03-30 8 0 5
2000-03-31 8 0 6
2000-04-01 8 0 7
2000-04-02 8 0 8
2000-04-03 8 0 9
答案 0 :(得分:4)
我无法对此请求做出正面或反面的评论,但我可以使用pd.concat
来做到这两者:
n = 5
head_tail = pd.concat([df[:n], df[-n:]])
您也可以分别打印头和尾。但是,要从tail
中删除标题,请调用to_string
并传递header=False
,
print(df.tail().to_string(header=False))
答案 1 :(得分:2)
编辑: 在'c1'设置为行索引的情况下添加选项
我只是意识到您的数据以c1
作为行索引。在这种情况下,您只需将index_names=False
添加到to_string
In [84]: df
Out[84]:
c2 c3 c4
c1
1900-12-16 8 0 0
1900-12-17 8 0 1
1900-12-18 8 0 2
1900-12-19 8 0 3
1900-12-20 8 0 4
2000-03-30 8 0 5
2000-03-31 8 0 6
2000-04-01 8 0 7
2000-04-02 8 0 8
2000-04-03 8 0 9
In [87]: print(df.head(2).to_string(header=df.columns.tolist(), index_names=False), df.tail(2).to_string(header=False, index_names=False) ,sep='\n\n')
c2 c3 c4
1900-12-16 8 0 0
1900-12-17 8 0 1
2000-04-02 8 0 8
2000-04-03 8 0 9
注意:我使用df
进行简单演示。只需将df
替换为reversed_df
即可获得所需的输出。
原始:
如果您使用to_string
,tolist
和print
参数,这是可行的。
In [59]: df
Out[59]:
c2 c3 c4
1900-12-16 8 0 0
1900-12-17 8 0 1
1900-12-18 8 0 2
1900-12-19 8 0 3
1900-12-20 8 0 4
2000-03-30 8 0 5
2000-03-31 8 0 6
2000-04-01 8 0 7
2000-04-02 8 0 8
2000-04-03 8 0 9
我只是打印出head(2)
和tail(2)
进行演示
In [65]: print(df.head(2).to_string(header=df.columns.tolist()), df.tail(2).to_string(header=False) ,sep='\n\n')
c2 c3 c4
1900-12-16 8 0 0
1900-12-17 8 0 1
2000-04-02 8 0 8
2000-04-03 8 0 9
答案 2 :(得分:1)
接近感冒的程度,但是我在这里使用drop
n=5
print(df.drop(df.index[n:-n]))
df.drop(df.index[n:-n]).to_string(header=False)