python替换数据集某列_基于相互列替换/填充来自另一个数据帧(不同索引)的数据帧(已筛选)子集中的值...

很难找出如何用另一个dataframe中的值替换主dataframe的过滤(在本例中为空)值,其中我在它们之间有相同的列/键。

这就是我所拥有的:

我需要填充空白马铃薯值的主数据框:date banana potato avocado

33 2017-06-01 55ee4cbc 80660 b57c-2473556952a8

34 2017-06-01 391dc0f6 82ff-46de03510afc

35 2017-06-01 3a1f407f 54408 a3a6-d85429eef303

36 2017-06-01 3a1f407f 54408 858d-48082acc66ed

37 2017-06-01 5222ab45 80693 ba1f-dbd387748b71

38 2017-06-01 5222ab45 80693 b085-99d58875084a

39 2017-06-01 5222ab45 80693 a570-6d4c766ff7cf

40 2017-06-01 6939ced3 960c-a9ded8ed2f56

41 2017-06-01 2478913a 80610 9258-df6d26027d18

42 2017-06-01 2478913a 80610 8e53-a1d8d4e175b9

43 2017-06-01 2478913a 80610 b4b2-a9221895f8b5

根据匹配的banana值,香蕉土豆匹配了主df中的空格(对马铃薯指数0和3感兴趣):

^{pr2}$

希望以这样的结局:

通过保留相同的索引,或者重置索引以包含来自主数据帧的所有值date banana potato avocado

33 2017-06-01 55ee4cbc 80660 b57c-2473556952a8

34 2017-06-01 391dc0f6 80686 82ff-46de03510afc

35 2017-06-01 3a1f407f 54408 a3a6-d85429eef303

36 2017-06-01 3a1f407f 54408 858d-48082acc66ed

37 2017-06-01 5222ab45 80693 ba1f-dbd387748b71

38 2017-06-01 5222ab45 80693 b085-99d58875084a

39 2017-06-01 5222ab45 80693 a570-6d4c766ff7cf

40 2017-06-01 6939ced3 55031 960c-a9ded8ed2f56

41 2017-06-01 2478913a 80610 9258-df6d26027d18

42 2017-06-01 2478913a 80610 8e53-a1d8d4e175b9

43 2017-06-01 2478913a 80610 b4b2-a9221895f8b5

我尝试过的

如果我合并它,那么我会得到一个新的框架,我不知道如何分配回原来的框架pd.merge(linear_df[linear_df.potato== ''], banana_potato_matched_df, how='left', on='banana')

date banana potato_x potato_y avocado

0 2017-06-01 55ee4cbc NaN b57c-2473556952a8

1 2017-06-01 391dc0f6 80686 82ff-46de03510afc

2 2017-06-01 3a1f407f NaN a3a6-d85429eef303

3 2017-06-01 3a1f407f NaN 858d-48082acc66ed

4 2017-06-01 5222ab45 NaN ba1f-dbd387748b71

5 2017-06-01 5222ab45 NaN b085-99d58875084a

6 2017-06-01 5222ab45 NaN a570-6d4c766ff7cf

7 2017-06-01 6939ced3 55031 960c-a9ded8ed2f56

8 2017-06-01 2478913a 80610 9258-df6d26027d18

9 2017-06-01 2478913a 80610 8e53-a1d8d4e175b9

10 2017-06-01 2478913a 80610 b4b2-a9221895f8b5Other way I think of is to split my main_df to 2 dataframes. One with

blank values (blank_main_df) and another with filled values

(filled_main_df). To merge blank_main_df with banana_potato_matched_df on banana key

and append to filled_main_df. Is that the best way ?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答这个问题。 Pandas是一个常用于数据分析的Python库,其DataFrames是一种二维数据结构,可以轻松处理大量数据。下面是对DataFrame数据的增删、补全及转换操作的简要介绍: **数据的增加操作** 1. 插入新的数据 可以使用 `df['new_column'] = new_data` 的方式在DataFrame插入新的数据,其`new_column`是新的名称,`new_data`是一个表或数组,表示新数据。 2. 插入新的行数据 可以使用 `df.loc[new_row_index] = new_data` 的方式在DataFrame插入新的行数据,其`new_row_index`是新行的索引,`new_data`是一个表或数组,表示新行的数据。 **数据的删除操作** 1. 删除数据 可以使用 `del df['column_name']` 的方式删除DataFrame的一数据,其`column_name`是要删除的的名称。 2. 删除行数据 可以使用 `df.drop(row_index)` 的方式删除DataFrame的一行数据,其`row_index`是要删除的行的索引。 **数据的补全操作** 1. 填充缺失 可以使用 `df.fillna(value)` 的方式将DataFrame的缺失填充为指定的,其`value`是要填充。 2. 插补全缺失 可以使用 `df.interpolate()` 的方式对DataFrame的缺失进行插补全。 **数据的转换操作** 1. 数据类型转换 可以使用 `df.astype(type)` 的方式将DataFrame数据类型转换为指定的类型,其`type`是要转换的数据类型。 2. 数据重塑 可以使用 `df.pivot()` 或 `df.melt()` 的方式对DataFrame数据进行重塑。 以上是对DataFrame数据的增删、补全及转换操作的简要介绍。希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值