gpt4 book ai didi

python - 用 Python 复制 SAS 的第一个和最后一个功能

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:04 25 4
gpt4 key购买 nike

我最近迁移到 Python 作为我的主要分析工具,我希望能够复制第一个工具。 & 最后的。 SAS 中的功能。 SAS 代码如下;

data data.out;
set data.in;
if first.ID then flag = 1;
if last.ID then flag = 1;
run;

输出结果如下;

ID     flag
AAAA 1
AAAA 0
AAAA 0
AAAA 1
BBBB 1
BBBB 0
BBBB 0
BBBB 1
CCCC 1
CCCC 0
CCCC 1

关于如何在 Python 中执行此操作的任何想法?

最佳答案

如果您正在使用 python 和运算数字,这种类型的事情通常会使用 pandas 来完成:

pip install pandas

假设您有一个 CSV 文件,您可以使用 pd.read_csv 加载数据.我不会对您的输入做出假设,因此请查看文档。加载数据框后,您可以继续。

import pandas

df = pd.read_csv('file.csv')
df

ID
0 AAAA
1 AAAA
2 AAAA
3 AAAA
4 BBBB
5 BBBB
6 BBBB
7 BBBB
8 CCCC
9 CCCC
10 CCCC

df['flag'] = ((df.ID != df.ID.shift()) | (df.ID != df.ID.shift(-1))).astype(int)
df
ID flag
0 AAAA 1
1 AAAA 0
2 AAAA 0
3 AAAA 1
4 BBBB 1
5 BBBB 0
6 BBBB 0
7 BBBB 1
8 CCCC 1
9 CCCC 0
10 CCCC 1

您也可以使用 np.where(来自 Brad Solomon 的建议):

df['flag'] = np.where((df.ID != df.ID.shift()) \
| (df.ID != df.ID.shift(-1)), 1, 0)
df
ID flag
0 AAAA 1
1 AAAA 0
2 AAAA 0
3 AAAA 1
4 BBBB 1
5 BBBB 0
6 BBBB 0
7 BBBB 1
8 CCCC 1
9 CCCC 0
10 CCCC 1

关于python - 用 Python 复制 SAS 的第一个和最后一个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46365212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com