df中的iu34列的值会等于1或者2,计算由1变2的次数和由2变1的次数
时间: 2024-02-26 09:57:19 浏览: 18
你可以使用 Pandas 中的 `shift()` 函数和条件判断来计算由 1 变成 2 和由 2 变成 1 的次数。
首先,使用 `shift()` 函数来创建一个新的列 `iu34_shift`,它的值是 `iu34` 列向下移动一行的结果:
```
df['iu34_shift'] = df['iu34'].shift(1)
```
接下来,使用条件判断来计算由 1 变成 2 和由 2 变成 1 的次数:
```
# 由 1 变成 2 的次数
count_1_to_2 = ((df['iu34_shift'] == 1) & (df['iu34'] == 2)).sum()
# 由 2 变成 1 的次数
count_2_to_1 = ((df['iu34_shift'] == 2) & (df['iu34'] == 1)).sum()
```
这里使用了 Pandas 中的 `sum()` 函数来计算符合条件的记录数。
完整的代码如下:
```
import pandas as pd
# 创建示例数据
data = {'iu34': [1,1,2,2,2,1,1,2]}
df = pd.DataFrame(data)
# 创建 iu34_shift 列
df['iu34_shift'] = df['iu34'].shift(1)
# 计算由 1 变成 2 的次数
count_1_to_2 = ((df['iu34_shift'] == 1) & (df['iu34'] == 2)).sum()
# 计算由 2 变成 1 的次数
count_2_to_1 = ((df['iu34_shift'] == 2) & (df['iu34'] == 1)).sum()
print(count_1_to_2) # 输出 2
print(count_2_to_1) # 输出 1
```