我對python編程和使用pandas庫相當陌生,我在比較2個不同數量的資料幀時遇到問題我想看看data_1中的數量是否小于data_2中每個專案的數量
import pandas as pd
data_1 = [['banana',10],['orange',2],['strawberry',3]]
data_2 = [['banana',1],['orange',2],['strawberry',5],['melon',8]]
df_1 = pd.Dataframe(data_1,columns = ['item','quantity'])
df_2 = pd.Dataframe(data_2,columns = ['item','quantity'])


我試圖使用 pd.merge() 來比較 2 個資料幀,但這并不是我想要的......我需要一個 3° 資料幀,只有差異
uj5u.com熱心網友回復:
對于這樣的比較專案應該是索引,然后您可以連接數量列并按照以下方式計算所需的列
import pandas as pd
data_1 = [['banana',10],['orange',2],['strawberry',3]]
data_2 = [['banana',1],['orange',2],['strawberry',5],['melon',8]]
df_1 = pd.DataFrame(data_1,columns = ['item','quantity'])
df_2 = pd.DataFrame(data_2,columns = ['item','quantity'])
df = pd.concat({"data1":df_1.set_index("item").quantity,"data2":df_2.set_index("item").quantity},axis=1,sort=False)
df['isless'] = df['data1'] < df['data2']
print(df)
輸出
data1 data2 isless
banana 10.0 1 False
orange 2.0 2 False
strawberry 3.0 5 True
melon NaN 8 False
uj5u.com熱心網友回復:
如果您查看 和 之間的差異df_1,則可以在將 設定為索引后df_2減去'quantity'列:'item'
import pandas as pd
data_1 = [['banana',10],['orange',2],['strawberry',3]]
data_2 = [['banana',1],['orange',2],['strawberry',5],['melon',8]]
df_1 = pd.DataFrame(data_1,columns = ['item','quantity'])
df_2 = pd.DataFrame(data_2,columns = ['item','quantity'])
# Setting 'item' as the index
df_1.set_index('item', inplace=True)
df_2.set_index('item', inplace=True)
df_3 = df_1.subtract(df_2,fill_value=0)>0
df_3.columns=['df1>df2']
輸出:
df1>df2
item
banana True
melon False
orange False
strawberry False
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526488.html
標籤:Python熊猫数据框
上一篇:在pandas中組合多個CSV
