我如何根据奇偶校验条件将一些信息从一个设备传送到另一个设备?
How can i put some information from a device to another device based on a parity condition?
我必须在工作中解决 pandas 中的一个问题,我有一个 .csv 文件,其中包含如下信息:
元素 --- 票证
1-X1211 --- TT0045
1-X1212
我有 2 个元素根据 2 个条件形成一对:
- 该对中的两个元素的前 6 个字符必须相同。
- 最后一个数字组成一对,像这样 1 和 2, 3 和 4, 5&6, 7&8, 9&0。
在这种情况下,您可以看到一对:1-X1211 与 1-X1212 对。
我需要做的是将票从对中的一个元素关联到对中的另一个元素(如果票首先存在)。因此,在这种情况下,从 1-X1211 -> TT0045 复制票并将其放在 1-X1212 对的另一个元素上。最后它应该是这样的:
元素
1-X1211 --- TT0045
1-X1212 --- TT0045
我无法分享代码,因为我不知道该怎么做。
谢谢,
尤利亚
假设以下数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame({'ID': ['1-x1211', '1-x1212'], 'Ticket': ['TT0045', '']})
print(df)
# Output
ID Ticket
0 1-x1211 TT0045
1 1-x1212
创建映射字典:
# 1 -> 2, 3 -> 4, ..., 9 -> 0
odd_to_even = {'1': '2', '3': '4', '5': '6', '7': '8', '9': '0'}
# Extract last char of the ID and replace it by 2, 4, 6, 8 or 0
even_id = df['ID'].astype(str).str[:-1] + df['ID'].astype(str).str[-1].replace(odd_to_even)
# Now find the right ticket for pairwise ID
df['Ticket'] = df.replace('', np.nan).groupby(even_id)['Ticket'].transform('first')
print(df)
# Output
ID Ticket
0 1-x1211 TT0045
1 1-x1212 TT0045
我必须在工作中解决 pandas 中的一个问题,我有一个 .csv 文件,其中包含如下信息:
元素 --- 票证
1-X1211 --- TT0045
1-X1212
我有 2 个元素根据 2 个条件形成一对:
- 该对中的两个元素的前 6 个字符必须相同。
- 最后一个数字组成一对,像这样 1 和 2, 3 和 4, 5&6, 7&8, 9&0。 在这种情况下,您可以看到一对:1-X1211 与 1-X1212 对。
我需要做的是将票从对中的一个元素关联到对中的另一个元素(如果票首先存在)。因此,在这种情况下,从 1-X1211 -> TT0045 复制票并将其放在 1-X1212 对的另一个元素上。最后它应该是这样的:
元素
1-X1211 --- TT0045
1-X1212 --- TT0045
我无法分享代码,因为我不知道该怎么做。
谢谢, 尤利亚
假设以下数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame({'ID': ['1-x1211', '1-x1212'], 'Ticket': ['TT0045', '']})
print(df)
# Output
ID Ticket
0 1-x1211 TT0045
1 1-x1212
创建映射字典:
# 1 -> 2, 3 -> 4, ..., 9 -> 0
odd_to_even = {'1': '2', '3': '4', '5': '6', '7': '8', '9': '0'}
# Extract last char of the ID and replace it by 2, 4, 6, 8 or 0
even_id = df['ID'].astype(str).str[:-1] + df['ID'].astype(str).str[-1].replace(odd_to_even)
# Now find the right ticket for pairwise ID
df['Ticket'] = df.replace('', np.nan).groupby(even_id)['Ticket'].transform('first')
print(df)
# Output
ID Ticket
0 1-x1211 TT0045
1 1-x1212 TT0045