python - 遍历行以查找数据中的中断
问题描述
我有以下数据表
Sam. Type Trace
E18 A 0.124
E28 A 0.114
E25 A 0.128
E99 B 0.132
E18 B 0.111
E25 B 0.108
E99 C 0.132
E18 C 0.111
...
我需要做的是确定数据的“A”类型何时中断,因此我只需将列类型的以下每一行与下一行进行比较,并创建一个新列来说明比较结果.
这就是我想要得到的:
Sam. Type Trace Categ.
E18 A 0.124 A
E28 A 0.114
E25 A 0.128
E99 B 0.132 B
E18 B 0.111
E25 B 0.108
E99 C 0.132 C
E18 C 0.111
...
我试图从这样的smth开始构建迭代的基础,但我无法进行正确的比较:
for index, row in sorted_data.iterrows():
if sorted_data['Type']== sorted_data['Type'].shift(-1):
print('ok')
有没有其他方法来比较行?
解决方案
我认为您需要使用or测试每Type
列的第一个重复值,最后设置值是:shift
duplicated
numpy.where
更改数据的差异 - 另一组A
:
m1 = sorted_data['Type'] != sorted_data['Type'].shift()
m2 = ~sorted_data['Type'].duplicated()
sorted_data['Categ.1'] = np.where(m1, sorted_data['Type'], '')
sorted_data['Categ.2'] = np.where(m2, sorted_data['Type'], '')
print (sorted_data)
Sam. Type Trace Categ.1 Categ.2
0 E18 A 0.124 A A
1 E28 A 0.114
2 E25 A 0.128
3 E99 B 0.132 B B
4 E18 B 0.111
5 E25 B 0.108
6 E99 C 0.132 C C
7 E18 C 0.111
8 E18 A 0.148 A
9 E28 A 0.144
10 E25 A 0.858
推荐阅读
- c++ - vfprintf_unlocked() 等效?
- css - 如何在css3中创建多色文本边框
- javascript - 增加 d3 散点图的大小
- python - 为什么这段代码不能识别下一个文本(列表、索引)?
- javascript - 无法读取未定义角度的属性“0”
- javascript - 站点地图的日期格式
- dart - How to rename classes with exports?
- java - java:使用位编码标签的存在
- java - java.lang.IllegalStateException:无法执行 android 的方法:onClick 访问变量 Android
- asp.net - 将架构添加到 SiteMapPath 控件导致 404 错误