Python 如何将一列的前10个值分配给dataframe中另一列的前10行?
我有一个有两列的数据框。我创建了一个新列,并将所有值都指定为“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 糕点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 糕点 我为您的案例创建的示例数据集,我假设
我为您的案例创建的示例数据集,我假设“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周条款?这似乎是一个完全不同的问题,值得进一步研究。你查过了吗,这样的案子是否已经开审了?否则。请用一个新的帖子问这个问题,这样其他人可以更容易地找到它。这两个链接可能会对你有所帮助。我仍然建议添加一个新线程。