我有一个数据帧df,如下所示
df = pd.DataFrame(
[['tom', 28, "tesla", "model s" ],
['nick', 30, "ford", "mustang"],
['juli', 56, "tesla", "model s"]] ,
columns = ['PersonName', 'PersonAge', "Car", "CarModel"]
)
df.head()
PersonName PersonAge Car CarModel
0 tom 28 tesla model s
1 nick 30 ford mustang
2 juli 56 tesla model s
我想将其转换为两个数据帧,如下所示
Person=
PersonName PersonAge CarId
tom 28 1
nick 30 2
juli 56 1
Cars=
id Car Model
1 Tesla Model S
2 Ford Mustang
正确的方法是什么
您可以将列分配给新的数据帧以创建
Person
和Cars
请注意,原始数据帧有一个索引,在创建新的数据帧时,该索引将被保留。该索引可以用作外键。事实上,索引部分在熊猫中通常是透明的。要从人名中选择汽车,您可以
如果要将索引转换为自己的列,可以这样做
但坚持指数操作通常更方便。。。。除非重置索引,否则必须使用不同的列
这应该起作用:
输出:
下面是你想要的
使用groupby创建Cars数据帧
然后使用merge添加CarId
相关问题 更多 >
编程相关推荐