Python—高效地查找数据帧中的所有字符集?

Python—高效地查找数据帧中的所有字符集?,python,pandas,Python,Pandas,我想找到数据帧中包含的所有唯一字符集。下面给出了一个有效的解决方案: from operator import add set(reduce(add, map(unicode, df.values.flatten()))) 但是,上面的解决方案需要很长时间才能处理大数据帧。有什么更有效的方法可以做到这一点 我正在尝试查找pandas数据框中的所有唯一字符,以便在将数据框作为csv写入磁盘时选择适当的分隔符。从Jeff那里学到了这一点 这应该可以通过使用熊猫内置: a = pd.DataFram

我想找到数据帧中包含的所有唯一字符集。下面给出了一个有效的解决方案:

from operator import add
set(reduce(add, map(unicode, df.values.flatten())))
但是,上面的解决方案需要很长时间才能处理大数据帧。有什么更有效的方法可以做到这一点

我正在尝试查找pandas数据框中的所有唯一字符,以便在将数据框作为csv写入磁盘时选择适当的分隔符。

从Jeff那里学到了这一点

这应该可以通过使用熊猫内置:

a = pd.DataFrame( data=np.random.randint(0,100000,(1000000,20)))

# now pull out unique values (less than a second for 2E7 data points)
b = pd.unique( a.values.ravel() )

我意识到这是一个老问题,但我一直在寻找同样的东西,我想我会分享给其他人看

这可以很快完成

使用
unstack()
获取数据帧中所有值的列表。结果甚至包含每个字符的计数

from collections import Counter
df = pd.DataFrame({'A': pd.util.testing.rands_array(100, 100000),
                 'B': pd.util.testing.rands_array(100, 100000)})
Counter(''.join(df.unstack().values))
时间:

%timeit Counter(''.join(df.unstack().values))
1.1 s ± 38.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

为什么不让Pandas处理将数据帧写入CSV文件(
to_CSV()
)?不需要自己选择分隔符-熊猫可以正确地处理所有事情。是的,在前面的评论中,你到底想解决什么问题?即使字符串中有逗号,也不会引起问题,因为它将在引号中输出。我不认为这是要求的,因为poster似乎在寻找单个字符,而不是椭圆值。例如,1.0具有1、0和周期。