【发布时间】:2019-09-26 09:43:30
【问题描述】:
我有一个数据框和同一数据框的更新版本,其中第 1 行中的颜色已更改,第 2 行已删除并附加了一行。
我想将具有新 ID 的行附加到旧数据框,然后比较两个数据框并写入比较结果(例如“新条目”、“更新颜色”、“条目已删除”或“无更改” ) 到“比较”列中。
Name Colour ID Compare
0 Lisa Red Apple
1 Anna Blue Banana
2 Anna Yellow Orange
3 Max Green Pear
Name Colour ID
0 Lisa Purple Apple
1 Anna Yellow Orange
2 Peter Pink Grape
我尝试了几种使用 .iloc 和 .where 的方法,但是我对选择/操作缺乏经验,所以没有成功。这是我想要实现的目标:
Name Colour ID Compare
0 Lisa Red Apple Colour changed
1 Anna Blue Banana Entry deleted
2 Anna Yellow Orange No changes
3 Max Green Pear New entry
感谢您的帮助。
这是为了创建数据框:
import pandas as pd
data = {'Name': ['Lisa', 'Anna', 'Anna', 'Max'],
'Colour': ['Red', 'Blue', 'Yellow', 'Green'],
'ID': ['Apple', 'Banana', 'Orange', 'Pear'],
'Compare': ['','','','']}
df = pd.DataFrame(data, columns = ['Name', 'Colour', 'ID', 'Compare'])
updatedDf = df.copy()
updatedDf = updatedDf.iloc[:, :-1]
updatedDf.set_value(0, 'Colour', 'Purple')
updatedDf = updatedDf.drop(1)
newrow = ['Peter', 'Pink', 'Grape']
updatedDf.loc[len(updatedDf)] = newrow
updatedDf = updatedDf.reset_index(drop=True)
【问题讨论】:
-
看看这个问题/答案:stackoverflow.com/questions/44752968/…
-
请显示您的预期输出
-
我已经添加了。