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

Python 如何将一列的前10个值分配给dataframe中另一列的前10行?,python,pandas,dataframe,assign,Python,Pandas,Dataframe,Assign,我有一个有两列的数据框。我创建了一个新列,并将所有值都指定为“N” 假设Column1=Year,Column2=week,现在Column3(初始分配全部为'N')在最近5周应等于'recent',在这之前的所有周应等于'passweek'。如何使用group by和top 5 weeks子句? 我该怎么做 年 周 C 2020 48 最近的 2020 47 最近的 2020 47 最近的 2020 46 最近的 2020 40 糕点 2019 52 糕点 我为您的案例创建的示例数据集,我假设

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

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

年 周 C 2020 48 最近的 2020 47 最近的 2020 47 最近的 2020 46 最近的 2020 40 糕点 2019 52 糕点
我为您的案例创建的示例数据集,我假设“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]

请提供一个最小的、完整的、可复制的示例()。假设索引是随机的,因为其他两列已排序,我们将如何访问a的前5行并将它们放入C?谢谢。成功了。但我发现了一个新的差异。假设Column 1=年,Column 2=周,现在Column 3在最近5周应等于'recent',在这之前的所有周应等于'Pastweek'。我如何使用分组方式和前5周条款?这似乎是一个完全不同的问题,值得进一步研究。你查过了吗,这样的案子是否已经开审了?否则。请用一个新的帖子问这个问题,这样其他人可以更容易地找到它。这两个链接可能会对你有所帮助。我仍然建议添加一个新线程。