Pandas有条件地将数据框添加到另一个数据框中

3
from pandas import DataFrame
import pandas as pd

df_1 = pd.DataFrame(
    {
        'Horses':["Horse1","Horse2","Horse3"],
        'Age':[2,5,3],
        'Price':["$100,000","$80,000","$60,000"],
        'Weight':["180g","140kg","240kg"]})  

df_2 = pd.DataFrame(
    {
        'Horses':["Horse4","Horse1","Horse5"],
        'Age':[4,3,2],
        'Price':["$75,000","$35,000","$120,000"],
        'Weight':["210kg","110kg","197kg"]})  



df_final = pd.DataFrame(
    {
        'Horses':["Horse1","Horse2","Horse3","Horse4","Horse5"],
        'Age':[2,5,3,4,2],
        'Price':["$100,000","$80,000","$60,000","$75,000","$120,000"],
        'Weight':["180g","140kg","240kg","210kg","197kg"]})
  • 我该如何从前两个数据框bf_1和bf_2创建df_final数据框?

  • 如何编写这个条件语句: 如果输入的是“Horse1”,则像上面一样删除,否则添加到底部。

1个回答

0

使用combine_first

df_1.set_index('Horses',inplace=True)
df_1=df_1.combine_first(df_2.set_index('Horses')).reset_index()
df_1
   Horses  Age     Price Weight
0  Horse1  2.0  $100,000   180g
1  Horse2  5.0   $80,000  140kg
2  Horse3  3.0   $60,000  240kg
3  Horse4  4.0   $75,000  210kg
4  Horse5  2.0  $120,000  197kg

如果df_2中的“Horse1”可以输入到“Horse6”,并且我希望我的程序在一个脚本中处理这两种情况怎么办?编辑:当输入“Horse1”时,就像上面一样被删除,否则它将被添加到底部。 - Anis Benna
所以这是一个不同的问题,与@AnisBenna不同,我建议关闭此问题并打开一个新问题(如果您认为我的答案对当前问题有帮助,您可以在右侧接受它的勾选标记)。 - BENY
好的,即使只有部分帮助也是可以的。关于条件的部分提到了,但只是简单地提到了一下。编辑:已更新。 - Anis Benna
@AnisBenna 我认为最好打开一个新的并关闭这个。这取决于你。 - BENY
@AnisBenna 如果你认为这个答案有帮助,你可以随时选择其中一个并接受它,在左边打勾标记。 - BENY

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接