python - 如何使用 python 中的公共(public)字段组合来自不同行的值?更新

标签 python python-3.x pandas

我是 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/

相关文章:

python - 我如何制作一个随机唯一数字列表,避免使用已经存在的随机唯一数字列表中的数字?

python - 将 python 子进程作业的输出获取到 Tornado 中

python - 需要 SSL 时将 Python/pandas 连接到 Redshift

python - 仅当列值是字符串时才将它们转换为小写

Python Pandas,从一列聚合多列

python - python中的循环置换运算符

python - 替换单行中的所有正则表达式匹配

python - 正则表达式解析二进制文件?

python - 逐行阅读 .txt 单词列表时如何获得正确的哈希值?

python - 从 CSV 文件行中的值确定数据类型