我是 python 的新手,如果可能的话希望得到你的帮助。我有一个包含多行的 .csv 文件。在一列中我有国家,在另一列中我有 id,在其他列中我有纬度和经度。我想将国家和经纬度的唯一值与所有 ID 合并到一个新的数据框中。为了方便起见,我有这个输入 df 示例:
Country id longitude latitude
Angola Pable 17.470 -12.245
Angola Juan 17.470 -12.245
Albania Dimitri 20.032 41.141
Albania Dinko 20.032 41.141
United States John -112.599 45.705
United States Paul -112.599 45.705
United States David -112.599 45.705
我试过:
df1 = df.groupby('Country').apply(lambda x: ','.join(x.id))
但它不起作用。
我正在寻找的输出是:
Country id longitude latitude
Angola Pable, Juan 17.470 -12.245
Albania Dimitri, Dinko 20.032 41.141
United States John, Paul, David -112.599 45.705
我希望这个输出是一个 pandas 数据框,我将使用它在 python 中使用 plotly 绘制 map 。有任何想法吗?提前谢谢你。
最佳答案
print(
df.groupby("Country")
.agg({"id": ", ".join, "longitude": "first", "latitude": "first"})
.reset_index()
)
打印:
Country id longitude latitude
0 Albania Dimitri, Dinko 20.032 41.141
1 Angola Pable, Juan 17.470 -12.245
2 United States John, Paul, David -112.599 45.705
关于python - 如何使用 python 中的公共(public)字段组合来自不同行的值?更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67204750/