簡體   English   中英

DataFrameGroupBy 到 dataframe 通過 apply(lambda x: x)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM