2024-10-02 00:44:15 发布
网友
我有一个pandas数据帧,如下所示:
letter;Pairs;Count abandon;frozenset(['abandon', 'dm']);1 abattoir;frozenset(['abattoir', 'year']);1 abbey;frozenset(['abbey', 'mean']);1
我想写一个csv,看起来像:
标准pandas数据帧选择似乎不起作用,因为frozenset使事情复杂化。在
frozenset
我假设数据帧中的第一行是标题行,因此:
print(df) letter Pairs Count 0 abandon (dm, abandon) 1 1 abattoir (abattoir, year) 1 2 abbey (abbey, mean) 1
(Pairs中元素周围的圆括号是pandas如何打印frozensets)
Pairs
frozensets
您可以将其更改为一个名为df2的数据框,如下所示:
df2
通过这样做:
df2 = pd.DataFrame([df['letter'],(df['Pairs']-set(df['letter'])).str.join('')]).T
它的工作原理是首先在letter和Pairs列之间执行set difference,以便获得frozenset中的元素,该元素与letter中的元素相同。然后可以使用这个元素和letter列中的元素创建一个新的DataFrame。最后,您将DataFrame进行转置,以便按照您想要的方式定向。在
letter
DataFrame
我认为
print(X.apply(lambda x: ";".join(x[1]),axis=1).to_csv(index=False))
或者
其中X是您的数据帧可能工作
我假设数据帧中的第一行是标题行,因此:
(
Pairs
中元素周围的圆括号是pandas如何打印frozensets
)您可以将其更改为一个名为
^{pr2}$df2
的数据框,如下所示:通过这样做:
它的工作原理是首先在
letter
和Pairs
列之间执行set difference,以便获得frozenset
中的元素,该元素与letter
中的元素相同。然后可以使用这个元素和letter
列中的元素创建一个新的DataFrame
。最后,您将DataFrame
进行转置,以便按照您想要的方式定向。在我认为
或者
^{pr2}$其中X是您的数据帧可能工作
相关问题 更多 >
编程相关推荐