计算python列中两个字符的出现次数

时间:2016-08-30 20:46:28

标签: python string find-occurrences

我有一个数据框(df),其中变量Area代表区号。我需要找到Z后跟X的出现次数 在以下示例中,Z-> X重复两次,这意味着计数为2

Area
Z
A
B
Z
X
A
B
Z
X

我已尝试以下内容查找True / False

    df.Area.str.contains(r'Z|X')

我确信这是错误的方法,因为它没有给我一个理想的结果。这样做的其他方式是什么?

1 个答案:

答案 0 :(得分:3)

您需要shift()功能,指定period参数为-1才能将系列向前移一步,这可以保证Z后跟{X 1}}:

((df.Area == "Z") & (df.Area.shift(-1) == "X")).sum()
# 2

仔细研究shift的工作原理:

df["Area_shift"] = df.Area.shift(-1)

df
#  Area  Area_shift
# 0   Z           A
# 1   A           B
# 2   B           Z
# 3   Z           X
# 4   X           A
# 5   A           B
# 6   B           Z
# 7   Z           X
# 8   X         NaN