第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在 pandas 數(shù)據框中找到 row_x 的 col1 值 == row_y 的 col2

如何在 pandas 數(shù)據框中找到 row_x 的 col1 值 == row_y 的 col2

慕田峪9158850 2022-06-14 16:25:37
我有一個包含多列的熊貓數(shù)據框。這些列中的 2 列應該相等但在單獨的行中,第三列應該在兩行中相等。例如,給定數(shù)據幀 df[A, B, C],找到 row_x 和 row_y 使得:(df.iloc[x, A] == df.iloc[y, B]) and (df.iloc[x, B] == df.iloc[y, A]) and (df.iloc[x, C] == df.iloc[y, C])有沒有比遍歷框架更好的方法來獲取交換列的行?A = [30,31]+list(range(2,8,1))+[38,39]B = range(10,0,-1)C = [True, False, True, False, False, False, True, False, True, False]df = pd.DataFrame({'A': A, 'B': B, 'C': C})Out[]: df    A   B   C0   30  10  True1   31  9   False2   2   8   True3   3   7   False4   4   6   False5   5   5   False6   6   4   True7   7   3   False8   38  2   True9   39  1   FalseRequired output:    A   B   C3   3   7   False5   5   5   False7   7   3   False只有第 3、5 和 7 行滿足上述條件。我將進一步刪除第 5 行,因為我對 A 列 = B 列的行不感興趣。請注意,第 4 行和第 6 行也交換了 A 列和 B 列中的值,但 C 列中的值不同。
查看完整描述

2 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

使用GroupBy 根據列進行分組。使用 GroupBy.apply 和 Series.isinC檢查兩個系列(和) 的公共值,然后可以使用DataFrame.unstack和DataFrame.any進行布爾索引:AB


new_df=df[df.groupby('C').apply(lambda x: x['A'].isin(x['B'])&x['B'].isin(x['A'])).unstack().any()]

print(new_df)



   A  B      C

3  3  7  False

5  5  5  False

7  7  3  False

回應您的評論:


df['A'].isin(df['B'])


0    False

1    False

2     True

3     True

4     True

5     True

6     True

7     True

8    False

9    False

Name: A, dtype: bool

df['A']==df['B']        


0    False

1    False

2    False

3    False

4    False

5     True

6    False

7    False

8    False

9    False

dtype: bool


查看完整回答
反對 回復 2022-06-14
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

關鍵是將數(shù)據框合并到自身,將B列與A列匹配:


df = df.merge(df.rename({'B': 'A', 'A': 'AfromB', 'C': 'CfromB'}, axis=1), how='left')

df = df[(df['B'] == df['AfromB']) & (df['C'] == df['CfromB'])].drop(['AfromB', 'CfromB'], axis=1)



查看完整回答
反對 回復 2022-06-14
  • 2 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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