如何将一列的前10个值分配给dataframe中另一列的前10行?

2024-10-03 17:27:50 发布

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

我有一个有两列的数据框。我创建了一个新列,并将所有值都指定为“N”

假设Column1=Year,Column2=week,现在Column3(初始分配全部为'N')在最近5周应等于'recent',在这之前的所有周应等于'passweek'。如何使用group by和top 5 weeks子句? 我该怎么做

^{tb1}$

Tags: 数据bytopgroupyearweekrecentcolumn1
2条回答

我为您的案例创建的示例数据集,我假设“C”列是新创建的列

     A  B  C
0    1  a  N
1    2  b  N
2    3  c  N
3    4  d  N
4    5  a  N
5    6  b  N
6    7  c  N
7    8  d  N
8    9  a  N
9   10  b  N
10  11  c  N
11  12  d  N
12  13  a  N
13  14  b  N
14  15  c  N

您可以使用下面的代码将新列的前10个值更改为列的前10个值

for i in range(10):
    df.loc[df['C'].index == i, 'C'] = df['A'].iloc[i]

结果是:

     A  B   C
0    1  a   1
1    2  b   2
2    3  c   3
3    4  d   4
4    5  a   5
5    6  b   6
6    7  c   7
7    8  d   8
8    9  a   9
9   10  b  10
10  11  c   N
11  12  d   N
12  13  a   N
13  14  b   N
14  15  c   N

对于您的情况,这应该有效:

df['name_of_col_1'][:10]= df['name_of_col_3'][:10]

相关问题 更多 >