[英]How to .apply(lambda x: x.split()) on a partial dataframe
[英]DataFrameGroupBy to dataframe via apply(lambda x: x)
我有一個 pandas DataFrameGroupBy object,我想將其轉換為普通的 dataframe。 現在我知道我可以使用:
df_g.apply(lambda x: x)
但為什么需要這樣做? 考慮到應用在 Pandas 中通常很昂貴。 有更好的解決方案嗎? 我沒有看到我的測試用例有任何令人眼花繚亂的性能損失(因為我沒有太多列),所以它可能沒問題。 只是好奇:)
示例代碼:
import pandas as pd
df = pd.DataFrame({'a': [1,2,3,4,5], 'b': ["a", "a", "a", "b", "b"]})
df_g = df.groupby(by='b')
df_again = df_g.apply(lambda x:x)
問候, 尼克拉斯
首先,我們必須重新考慮,當我們什么都不做的時候,我們為什么要分組。 我們可以嘗試concat
,它應該比 apply 更快:
pd.concat(dict(iter(df_g)).values())
a b
0 1 a
1 2 a
2 3 a
3 4 b
4 5 b
%timeit pd.concat(dict(iter(df_g)).values())
#3.09 ms ± 229 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit df_g.apply(lambda x: x)
#5.33 ms ± 325 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.