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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從具有特定列和條件的數(shù)據(jù)框中選擇行(不使用列名)

從具有特定列和條件的數(shù)據(jù)框中選擇行(不使用列名)

開心每一天1111 2021-07-29 18:09:18
我有兩個(gè)數(shù)據(jù)框df1和df2,df1A B2 65 17 31 29 74 73 48 9并df2包含A  B  A_bin  B_bin  C  D  E2  6  1      2      5  4  15  1  2      1      2  2  47  3  3      1      5  1  71  2  1      1      8  4  99  7  3      3      5  5  84  7  2      3      1  8  53  4  1      2      2  9  38  9  3      3      4  6  2我想選擇只選擇那些特定的行df2到一個(gè)新的數(shù)據(jù)幀df_result_A為具有所有的行A_bin = 1 相若方式,單獨(dú)的數(shù)據(jù)幀df_result_B具有所有這些行df2,使得B_bin行包含1.我發(fā)現(xiàn)很難把我的邏輯不正確的語(yǔ)法或者可能我的邏輯是錯(cuò)誤的,for i in range(len(df1(df2[columns])+len(df)):    if(row value is 1)print in df_result_Aprint in df_result_B由于面臨的挑戰(zhàn)是不使用的列名和索引,如代碼應(yīng)該用于其他數(shù)據(jù)集,以及運(yùn)行我在DF2的前兩列試圖首先作為迭代len(df1)都會(huì)讓我知道2列之后A_bin,并B_bin會(huì)來(lái)的。因此,當(dāng)我在 df2 的第一列上時(shí),添加len(df1)將使我打開A_bin并迭代它以檢查值是否為 1 并將其存儲(chǔ)在單獨(dú)的數(shù)據(jù)幀中。同樣,當(dāng)我在df2添加的第二列上時(shí),len(df2)會(huì)將我置于其中B_bin,從而將其結(jié)果存儲(chǔ)在df_result_B. 單獨(dú)數(shù)據(jù)幀中的預(yù)期結(jié)果。df_result_AA  B   C  D  E2  6   5  4  11  2   8  4  93  4   2  9  3df_result_bA B C D E5 1 2 2 47 3 5 1 71 2 8 4 9
查看完整描述

1 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

你可以這樣做:


示例數(shù)據(jù)框:


In [31]: df1

Out[31]: 

   A  B

0  2  6

1  5  1

2  7  3

3  1  2

4  9  7

5  4  7

6  3  4

7  8  9


In [36]: df2

Out[36]: 

   A  B  A_bin  B_bin  C  D  E

0  2  6      1      2  5  4  1

1  5  1      2      1  2  2  4

2  7  3      3      1  5  1  7

3  1  2      1      1  8  4  9

4  9  7      3      3  5  5  8

5  4  7      2      3  1  8  5

6  3  4      1      2  2  9  3

7  8  9      3      3  4  6  2

有一個(gè)變量count和一個(gè)空字典來(lái)動(dòng)態(tài)存儲(chǔ)新的數(shù)據(jù)幀。


count = 0

d = dict()

我已經(jīng)使用您的邏輯根據(jù)df1.


for col in df2.columns:

    print(col)

    l = df1.shape[1]

    if count < l:

        d[col] = df2[ df2.iloc[:, count + l] == 1 ]

    count += 1

這會(huì)遍歷 的列,df2直到變量count小于 的列數(shù)df1。它過(guò)濾第 3 和第 4 列(根據(jù)您的示例)的行,其值為1和 存儲(chǔ)在字典中d。


現(xiàn)在,您可以遍歷您的字典并找到您想要的新數(shù)據(jù)框:


In [52]: for key in d.keys():

    ...:     print(d[key][d[key].columns.drop(list(d[key].filter(regex='bin')))])


   A  B  C  D  E

0  2  6  5  4  1

3  1  2  8  4  9

6  3  4  2  9  3



   A  B  C  D  E

1  5  1  2  2  4

2  7  3  5  1  7

3  1  2  8  4  9

因此,您不必?fù)?dān)心確切的列名稱。如果這有幫助,請(qǐng)告訴我。


查看完整回答
反對(duì) 回復(fù) 2021-08-03
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)