3
新手問題:有沒有就地版本的熊貓截斷?就地版本的pandas truncate?
例如
>>> df = pandas.DataFrame({'stuff':range(5)}, index=range(5))
>>> df.truncate(2,3)
返回一個新的截斷的數據幀。我能做
>>> df = pandas.DataFrame({'stuff':range(5)}, index=range(5))
>>> df = df.truncate(2,3)
但這似乎效率低下。有沒有辦法做一個更有效的截斷不復制副本,但在原地截斷?或者,這種效率不是由於一些超級聰明的熊貓設計造成的問題?
請注意,truncate的文檔字符串表示存在複製選項,但我不認爲這會影響數據框本身是否被截斷,而是返回的值是數據框的副本還是對數據幀。請參閱下面的我的意思:
>>> df = pandas.DataFrame({'stuff':range(5)}, index=range(5))
>>> cp = df.truncate(2,3, copy=False)
>>> df
stuff
0 0
1 1
2 2
3 3
4 4
>>> cp['stuff'][2] = -50
>>> df
stuff
0 0
1 1
2 -50
3 3
4 4
注意,當我們使用copy=False
DF仍然沒有被截斷,但返回的對象是DF的切片,其修改時還會修改DF。
謝謝。
你甚至讀過文檔字符串嗎? – Goyo
@Goyo我猜你是指在文檔字符串中提到的複製選項。對不起,在最初的帖子中沒有更清楚。複製選項與就地截斷不同。更新了問題以反映這一點。謝謝。 – oxer
請參閱http://stackoverflow.com/a/22533110/2285236 – ayhan