我有一个巨大的数据集需要清理,但我不确定如何使用流量控制来获取我需要的输出。 A 列是一个整数,可以是任意数字。我感兴趣的是 A 列中何时有特定数字(0、00、000 或什么都没有)。如果这些存在,我希望 C 包含 A。如果它们不存在,我希望 C 为 B + '- '+一个
输入表
A B C
0 1
00 2
3
000 4
4 5
10 6
我的代码尝试
if A = 0, 00, 000, null:
write B
else:
Write B + "-" + A
所需输出(C 列)
A B C
0 1 1
00 2 2
3 3
000 4 4
4 5 5-4
10 6 6-10
最佳答案
假设数据是制表符分隔的,解决方案可能类似于以下内容:
import pandas as pd
import numpy as np
import io
data = """A B
0 1
00 2
3
000 4
4 5
10 6"""
df = pd.read_csv(io.StringIO(data), sep='\t', dtype=str, keep_default_na=False)
blacklist = ['0','00','000', '']
df['C'] = np.where(np.isin(df['A'], blacklist), df['B'], df['B']+'-'+df['A'])
print(df)
输出
A B C
0 0 1 1
1 00 2 2
2 3 3
3 000 4 4
4 4 5 5-4
5 10 6 6-10
关于python - 使用Python基于字段/列中的整数进行流量控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59203795/