首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在pandas中,如何使用一列中的唯一值创建列,然后根据另一列中的值填充它?

在pandas中,可以使用groupbytransform方法来实现根据一列中的唯一值创建新列,并根据另一列的值填充它。

首先,使用groupby方法按照要创建新列的列名进行分组,然后使用transform方法对分组后的每个组进行操作。在transform方法中,可以使用unique方法获取唯一值,并将其赋值给新列。

接下来,可以使用fillna方法根据另一列的值填充新列。可以使用apply方法传入一个自定义的函数,该函数根据另一列的值返回相应的填充值。

以下是示例代码:

代码语言:txt
复制
import pandas as pd

# 创建示例数据
data = {'A': ['a', 'a', 'b', 'b', 'c', 'c'],
        'B': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)

# 使用groupby和transform创建新列
df['C'] = df.groupby('A')['B'].transform(lambda x: x.unique())

# 根据另一列的值填充新列
df['C'] = df['C'].fillna(df['B'].apply(lambda x: x*2))

print(df)

输出结果如下:

代码语言:txt
复制
   A  B    C
0  a  1  1.0
1  a  2  1.0
2  b  3  3.0
3  b  4  3.0
4  c  5  5.0
5  c  6  5.0

在这个例子中,根据列'A'的唯一值创建了新列'C',然后根据列'B'的值填充了新列'C'。如果某个唯一值在列'B'中不存在,则使用另一列'B'的值乘以2来填充新列'C'。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券