2017-03-16 104 views
1

我有一個熊貓數據框填充字符串。我想對所有條目應用字符串操作,例如capitalize()。我知道我們可以使用series.str.capitlize()。我也知道我可以遍歷Dataframe的列,併爲每個列執行此操作。但我希望更有效和優雅的東西,沒有循環。由於使用適用於熊貓數據框與字符串沒有循環系列

回答

1

使用stack + unstack
stack使得與單級列索引到的一系列數據幀。然後,您可以執行str.capitalize()unstack以恢復原始表單。

df.stack().str.capitalize().unstack() 
+0

這是一個有用的技巧,一般就知道了,謝謝 – splinter

+2

注意,這將是不高性能比列應用了作爲此份以上(並推斷dtypes),而不是高速緩存友好的 - 所以因人而異(也稱如果你有所有的對象數據,這是一個很好的習慣用法) – Jeff