亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何“關閉”DataFrame 列中的匹配對

如何“關閉”DataFrame 列中的匹配對

溫溫醬 2024-01-15 15:41:59
在你的test_foo.py:import unittestfrom unittest import mockfrom foo import Beef, Fooclass TestBeef(unittest.TestCase):      def test_run(self):        mock.object.patch(Foo, 'bar', return_value={'a': 'x'})        beef = Beef()        assert result == {'a': 'x'}
查看完整描述

3 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

然后嘗試使用tuple+setfactorize

df['pair'] = df.apply(lambda x : tuple(set(x)),1).factorize()[0]+1
Out[69]: array([1, 2, 1, 2], dtype=int64)


查看完整回答
反對 回復 2024-01-15
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

您可以對數據進行排序并使用groupby().ngroup():


df['pair'] = (pd.DataFrame(np.sort(df, axis=1))

   .groupby([0,1], sort=False).ngroup() + 1

)

輸出:


  src dest  pair

0  LV   NC     1

1  LA   NY     2

2  NC   LV     1

3  NY   LA     2


查看完整回答
反對 回復 2024-01-15
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

您可以按以下方式分組frozenset:


df['pair'] = df.groupby(df.apply(frozenset, axis=1)).ngroup() + 1

print(df)

印刷:


  src dest  pair

0  LV   NC     1

1  LA   NY     2

2  NC   LV     1

3  NY   LA     2


查看完整回答
反對 回復 2024-01-15
  • 3 回答
  • 0 關注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號