通过在一列中添加不同的数据从一个创建两个数据帧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过在一列中添加不同的数据从一个创建两个数据帧相关的知识,希望对你有一定的参考价值。
我是python的新手,并且正在努力解决一个非常基本的概念,所以请耐心等待。请接受我的道歉。
Objetive:我有一个现有的数据框我想采用现有的数据框,并根据它创建两个独立的版本(变量“df_1”和“df_2”)。它们将是相同的,除非它们具有不同的country_ids。
请参见数据帧1(“df_1”)的所需输出
name occupation country_id
mike plumber 123
mary plumber 123
joe plumber 123
请参阅数据帧2的所需输出(“df_2”)
name occupation country_id
mike plumber 456
mary plumber 456
joe plumber 456
我的守则
country_id_1 = 123
country_id_2 = 456
df_0 =
name occupation
mike plumber
mary plumber
joe plumber
df_1 = df_0
df_2 = df_0
df_1['country_id'] = df_1.shape[0]*[country_id_1]
df_2['country_id'] = df_2.shape[0]*[country_id_2]
当我打印我得到这个结果
print(df_1['country_id'] = df_1.shape[0]*[country_id_1])
print(df_2['country_id'] = df_2.shape[0]*[country_id_2])
name occupation country_id
mike plumber 456
mary plumber 456
joe plumber 456
name occupation country_id
mike plumber 456
mary plumber 456
joe plumber 456
它显然是指我使用的最后一个变量(country_Id_2)。我确信循环/迭代会解决这个问题,但我确实需要在一天结束时使用两个变量。任何帮助,将不胜感激。
答案
使用assign
创建一个新列,它将为您创建适当的副本:
country_id_1 = 123
country_id_2 = 456
df_1 = df_0.assign(country_id=country_id_1)
df_2 = df_0.assign(country_id=country_id_2)
>>> df_1
name occupation country_id
0 mike plumber 123
1 mary plumber 123
2 joe plumber 123
>>> df_2
name occupation country_id
0 mike plumber 456
1 mary plumber 456
2 joe plumber 456
另一答案
您可以将.copy()
用于广播,df
是您现有的数据帧:
df1 = df.copy()
df1['country_id'] = 123
df2 = df.copy()
df2['country_id'] = 456
以上是关于通过在一列中添加不同的数据从一个创建两个数据帧的主要内容,如果未能解决你的问题,请参考以下文章
我如何 SQL Join 2 个数据库,在一列中只有不同的结果