python - 如何更改此设置,以使 s2 上的输出也仅显示未从 s1 重复的输出?
问题描述
我只想要 s1 和 s2 不匹配的输出。我必须取出 s1 和 s2 中的所有数据,只保留唯一数据。这是我的代码:
for i in range(0,10):
if s1[i] in s2.values:
s1 = s1.drop([i])
print('Different values in s1:')
print(s1)
print()
for i in range(0,10):
if s2[i] in s1.values:
s2 = s2.drop([i])
print('Different values in s2:')
print(s2)
它适用于 s1,但由于 s1 的值已经被擦除,s2 只显示每个输出。如何更改代码以使其适用于两者?
这是两个熊猫系列的当前输出(我使用了 randint() 所以每次我重新运行代码时,数字都会改变,但它应该总是看起来像这样):
Panda Series 1:
0 3
1 3
2 9
3 10
4 6
5 7
6 2
7 5
8 4
9 9
dtype: int64
Panda Series 2:
0 8
1 9
2 5
3 8
4 8
5 10
6 10
7 8
8 10
9 6
dtype: int64
这是错误代码的输出:
Different values in s1:
0 3
1 3
5 7
6 2
8 4
dtype: int64
Different values in s2:
0 8
1 9
2 5
3 8
4 8
5 10
6 10
7 8
8 10
9 6
dtype: int64
解决方案
一种方法是复制 s1(例如 s1a)并更新它,然后在 s2 上执行相同的操作,但使用 s1 来查询数据。完成后设置 s1 = s1a。
s1a = s1
for i in range(0,10):
if s1a[i] in s2.values:
s1a = s1a.drop([i])
print('Different values in s1:')
print(s1a)
print()
for i in range(0,10):
if s2[i] in s1.values:
s2 = s2.drop([i])
print('Different values in s2:')
print(s2)
s1 = s1a
您也可以使用 how=inner 加入 s1 和 s2。结果将是您需要从两者中删除的交叉点。
推荐阅读
- ios - 与蜂窝网络相比,在 wifi 上的 React-native 获取速度非常慢。在开发和生产中,无论运行/不是调试器
- kubernetes - 无法在谷歌云中使用 kubernetes 公开部署
- multithreading - 在 Lparallel 库中使用队列(Common Lisp)
- android - Xamarin.Android 设计器是阿拉伯语的 VS 错误
- php - 上传文件 PHP EC2 不工作没有错误
- ruby - 使用 Ruby gets.chomp 方法向用户询问多个问题
- type-theory - 分离函数的联合类型?
- google-sheets - 在 Google 表格中查找奇数计数的公式
- r - 检查字符是否在数据框中
- android - 将值从单个传递到可完成以产生 rxjava Android