从数据帧中提取

2024-10-02 00:44:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据帧,如下所示:

letter;Pairs;Count
abandon;frozenset(['abandon', 'dm']);1
abattoir;frozenset(['abattoir', 'year']);1
abbey;frozenset(['abbey', 'mean']);1

我想写一个csv,看起来像:

^{pr2}$

标准pandas数据帧选择似乎不起作用,因为frozenset使事情复杂化。在


Tags: csv数据pandas标准countdmmeanyear
2条回答

我假设数据帧中的第一行是标题行,因此:

print(df)

     letter             Pairs Count
0   abandon     (dm, abandon)     1
1  abattoir  (abattoir, year)     1
2     abbey     (abbey, mean)     1

Pairs中元素周围的圆括号是pandas如何打印frozensets

您可以将其更改为一个名为df2的数据框,如下所示:

^{pr2}$

通过这样做:

df2 = pd.DataFrame([df['letter'],(df['Pairs']-set(df['letter'])).str.join('')]).T

它的工作原理是首先在letterPairs列之间执行set difference,以便获得frozenset中的元素,该元素与letter中的元素相同。然后可以使用这个元素和letter列中的元素创建一个新的DataFrame。最后,您将DataFrame进行转置,以便按照您想要的方式定向。在

我认为

print(X.apply(lambda x: ";".join(x[1]),axis=1).to_csv(index=False))

或者

^{pr2}$

其中X是您的数据帧可能工作

相关问题 更多 >

    热门问题