![](/img/trans.png)
[英]Compare a timestamp with another between 2 dataframes and populate values into a new column
[英]How to compare values in a specific column between 2 dataframes to check if there's a new value in the newer dataframe column?
我不斷從網站中提取新數據,我的目標是將上次提取數據時特定列中的數據與新提取的數據進行比較。 如果有新行(通過比較每一列中的數據來識別,例如,每個數據幀中的一個名稱列)則取與新名稱關聯的行並將其移動到新刮取的 dataframe 中的數據頂部(原因是我正在抓取的網站上的數據不是從最新到最舊的順序)。 我想出了如何從 dataframe 中抓取數據、刪除列和刪除具有特定值的行,但這一直是我的難題。 我感謝你們提供的所有幫助!
示例數據框:
olddf = pd.DataFrame({'Name': ['apple', 'oranage', 'banana'], 'Value': ['red', 'orange', 'yellow'])
newdf = pd.DataFrame({'Name': ['apple', 'oranage', 'greenapple', 'banana'], 'Value': ['red', 'orange', 'green', 'yellow'])
goaldf = pd.DataFrame({'Name': ['greenapple', 'apple', 'oranage', 'banana'], 'Value': ['green', 'red', 'orange', 'yellow'])
舊示例 dataframe output:
Name Value
0 apple red
1 orange orange
2 banana yellow
新示例 dataframe output:
Name Value
0 apple red
1 orange orange
2 greenapple green
3 banana yellow
目標示例 dataframe output:
Name Value
0 greenapple green
1 apple red
2 orange orange
3 banana yellow
利用 -
common = newdf.merge(olddf,on=['Name','Value'])
pd.concat([newdf[(~newdf.Name.isin(common.Name))&(~newdf.Value.isin(common.Value))], olddf]).reset_index(drop=True)
Output
Name Value
0 greenapple green
1 apple red
2 oranage orange
3 banana yellow
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.