python - 将同一数据帧中的另一个切片插入到 pandas 数据帧切片中

标签 python pandas dataframe

我有一个像这样的pandas.DataFrame:

df = pd.DataFrame({'val_1': [np.nan, np.nan, np.nan, 2.34, 2.21, 2.45], 
                   'val_2': [3.1, 3.02, 3.67, np.nan , np.nan, np.nan], 
                   'group': [1, 1, 1, 2, 2, 2]})

df

    val_1   val_2  group
0   NaN     3.10    1
1   NaN     3.02    1
2   NaN     3.67    1
3   2.34    NaN     2
4   2.21    NaN     2
5   2.45    NaN     2

我想使用 val_1< 列中的值填充 val_1 列中属于组 1NaN 来自组 2。我尝试使用:

df.loc[df['group']==1, 'val_1'] = df.loc[df['group']==2, 'val_1'] 

我预计结果如下:

    val_1   val_2  group
0   2.34    3.10    1
1   2.21    3.02    1
2   2.45    3.67    1
3   2.34    NaN     2
4   2.21    NaN     2
5   2.45    NaN     2

但我得到的是这个:

    val_1   val_2  group
0   NaN     3.10    1
1   NaN     3.02    1
2   NaN     3.67    1
3   2.34    NaN     2
4   2.21    NaN     2
5   2.45    NaN     2

我怎样才能正确执行该操作? 该解决方案需要可扩展到更大的数据框。 预先感谢您!

最佳答案

修复您的代码,添加 .values

df.loc[df['group']==1, 'val_1'] = df.loc[df['group']==2, 'val_1'].values
df
Out[300]: 
   val_1  val_2  group
0   2.34   3.10      1
1   2.21   3.02      1
2   2.45   3.67      1
3   2.34    NaN      2
4   2.21    NaN      2
5   2.45    NaN      2

关于python - 将同一数据帧中的另一个切片插入到 pandas 数据帧切片中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56601019/

相关文章:

python - 使用哪个 python mpi 库?

python - 这个字符串标准化器 Python 片段有什么问题?

python - python 匹配txt文件中的字符串并获取它旁边的数字

python - 适合 Pandas df 的 LabelEncoder 顺序

python - 如何根据 id 和 "original date"范围填充 Pandas 数据框?

python - 我怎样才能得到递归值以输入幂函数?

python - 分组依据 占总数的百分比

python - 如何基于pandas中的多个键进行映射而不合并

python - 从两个列表创建数据框时需要解压太多值

python - 当我将 python 线程设置为守护进程时有什么区别