Pandas:如何在Dataframe中创建一个新列,并在其中添加值,同时考虑其他现有列

2024-05-15 20:54:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,代表一些餐馆及其名称

  • 我想做的是在我的初始数据框is_chain中添加一列df,该列表示餐厅是否为食物链。此新列采用0或1。值1表示该餐厅是连锁店(如麦当劳)的一部分。如果数据库中有另一家同名餐厅,则该餐厅被视为连锁店的一部分
data = {
        'restaurant_id':  ['1', '2','3','4','5','6','7','8','9','10','11','12'],
        'restaurant_name':  ['Dennys', 'Dennys','Pho U','Pho U','Dennys','Japanese Cafe','Japanese Cafe','Midori','Midori','xxx','yyy','zzz'],
        }

df = pd.DataFrame (data, columns = ['restaurant_id','restaurant_name'])

df.head(15)

例如,这里,xxxyyyzzz不是链的一部分

我不确定使用pandas来实现这样的功能的语法是否正确。如果需要任何澄清,请询问

多谢各位


Tags: 数据nameiddfdatacafe餐厅restaurant
1条回答
网友
1楼 · 发布于 2024-05-15 20:54:47

这听起来像duplicated

 df['is_chain'] = df['restaurant_name'].duplicated(keep=False).astype(int)

输出:

   restaurant_id restaurant_name  is_chain
0              1          Dennys         1
1              2          Dennys         1
2              3           Pho U         1
3              4           Pho U         1
4              5          Dennys         1
5              6   Japanese Cafe         1
6              7   Japanese Cafe         1
7              8          Midori         1
8              9          Midori         1
9             10             xxx         0
10            11             yyy         0
11            12             zzz         0

相关问题 更多 >