Python将两个数据集的两列转换为一列,保留列名和数据类型
我有两个带有保单编号的数据集:Python将两个数据集的两列转换为一列,保留列名和数据类型,python,Python,我有两个带有保单编号的数据集: df_only 1[政策编号] df_only 2[政策编号] 我想将政策编号附加到一个数据集中:df_related_pols['policy_no'] 保留dataformat(字符串,尽管它们是数字)和列名,以便稍后使用 isin(df_related_pols['Policy_no'])。似乎您需要panda的concat来实现您想要实现的目标。这有用吗 import pandas as pd data_only1 = {'Policy_no':[100,
isin(df_related_pols['Policy_no'])。似乎您需要panda的
concat来实现您想要实现的目标。这有用吗
import pandas as pd
data_only1 = {'Policy_no':[100,101,102,103]}
data_only2 = {'Policy_no':[110,111,112,113]}
df_only1 = pd.DataFrame(data_only1)
df_only2 = pd.DataFrame(data_only2)
df_relevant_pols = pd.concat([df_only1,df_only2])
df_relevant_pols['Policy_no'] = df_relevant_pols['Policy_no'].astype(str)
print(df_relevant_pols)
输出:
Policy_no
0 100
1 101
2 102
3 103
0 110
1 111
2 112
3 113
当然,如果您不想从两个数据帧中保留原始索引,您可以执行.reset_index()
。如果您只想使用它们检查isin(df_related_pols['Policy_no'])
,您可以创建一个集合,使用is_in()
进行比较时比使用列表更快
可能看起来是这样的:
df1 = pd.DataFrame({'Policy_no':[0,1,3,6]})
df2 = pd.DataFrame({'Policy_no':[0,2,4]})
policy_numbers = set(np.append(df1.Policy_no.values, df2.Policy_no.values))
# Result: {0, 1, 2, 3, 4, 6}
然后,当您要筛选时:
df3 = pd.DataFrame({'Policy_no':[i for i in range(10)]})
df3[df3.Policy_no.isin(policy_numbers)]
Policy_no
0 0
1 1
2 2
3 3
4 4
6 6
请看一看,并提供一个包括样本输入、样本输出和您迄今为止尝试的代码的示例。从基本描述来看,它听起来像是一个简单的pd.merge