【发布时间】:2021-05-25 10:50:34
【问题描述】:
假设我有一个包含一列的数据框,它有 3 个唯一值
import pandas as pd
df = pd.DataFrame(['a', 'b', 'c'], columns = ['string'])
df
我想将此数据帧拆分为更小的数据帧,这样每个数据帧将包含 2 个唯一值。在上述情况下,我需要 3 个数据帧 3c2(nCr) = 3。df1 - [a b] df2 - [a c] df3 - [b c]。请点击下面的链接查看我当前的实现。
Click here to see current code and output
import itertools
for i in itertools.combinations(df.string.values, 2):
print(df[df.string.isin(i)], '\n')
我在熊猫中看起来像 groupby。因为循环内的子设置数据非常耗时。在一个示例案例中,我有 609 个唯一值,完成循环大约需要 3 分钟。因此,寻找一些优化的方法来执行相同的操作,因为在实际场景中唯一值可能会高达 1000 个。
【问题讨论】:
-
欢迎来到 StackOverflow。我们中的许多人都不允许去 imgr 和其他网站。你能在这里发布屏幕截图吗?或者更好的是,发布实际的代码和输出?这样,我们就不必重新输入您的代码来测试我们的解决方案(而且您更有可能得到答案)。
-
@rajah9 对不起!现在,我添加了有问题的代码块。我没有足够的声誉来添加图片。
标签: python pandas dataframe pandas-groupby combinations