Python Pandas添加了一个具有比较列与某些外部集的值的列

谢尔盖·沙姆苏罗夫(Sergey Shamsuarov)

我通过车站代码有一个数据帧(约3万行)旅行次数。

从站 站到 计数
20001 20040 55
20040 20001 67
20007 20080 100
20080 20007 50

和数据集-路线ID:车站ID列表。范例10001(20001,2020,20013,... 20040); 10002(20007,2000,20019,... 20080)。这样的路线大约有100条。如果出发地和目的地的站点包含在一个或另一个集合中,则任务是根据该标准将路线的名称添加到数据帧中

从站 站到 计数 路线
20001 20040 55 1001
20040 20001 67 1001
20007 20080 100 1002
20080 20007 50 1002

在主要形式中,路由列表是一个xml文件(Sation id C1项目,路由ID NM),我可以解析它,但是我不知道将其转换为哪种形式(dataframe,dict)以及该怎么做下一个

<?xml version="1.0" encoding="windows-1251"?><MRS1>
<MR NM="002001" PT="0">
<C N="001" C1="2040484" L="000" NZ="099" PZ="0000" NO="01" S="ВЕР УФАЛЕЙ  " ZT="0" />
<C N="002" C1="2040751" L="006" NZ="099" PZ="0000" NO="01" S="ОП 100 КМ   " ZT="0" />
...
<C N="022" C1="2030055" L="106" NZ="099" PZ="0000" NO="07" S="ШАРТАШ      " ZT="0" />
<C N="023" C1="2031190" L="108" NZ="099" PZ="0000" NO="07" S="ПЕРВОМАЙСК  " ZT="0" />
<C N="024" C1="2030000" L="110" NZ="099" PZ="0000" NO="07" S="ЕКАТЕРИНБ П " ZT="0" />
</MR>
<MR NM="002002" PT="0">
<C N="001" C1="2040000" L="000" NZ="099" PZ="0000" NO="01" S="ЧЕЛЯБИНСК   " ZT="0" />
<C N="002" C1="2041748" L="002" NZ="099" PZ="0000" NO="01" S="ЛОКОМОТИВ1  " ZT="0" />
...
<C N="044" C1="2041502" L="152" NZ="099" PZ="0000" NO="01" S="ОП 1948 КМ  " ZT="0" />
<C N="045" C1="2040550" L="160" NZ="099" PZ="0000" NO="01" S="ЗЛАТОУСТ    " ZT="0" />
</MR>
<MRS1>
萨拉特纳特拉伊

可以说,您解析XML并将其转换为dict格式,如下所示:

route_id = {1001 : [20001,20040], 1002: [20007,20080]}

然后,您编写这段代码以将其转换为以后可以使用的格式series.map

route_rev = {}
for i,k in zip(route.keys(), route.values()):
    for j in k:
        route_rev[j] = i
print(route_rev)
{20001: 1001, 20040: 1001, 20007: 1002, 20080: 1002}

现在,只需使用map车站代码和dictstation_from对应的路线代码并将其匹配route_rev

df['route'] = df.station_from.map(route_rev)
print(df)
   station_from  station_to  count  route
0         20001       20040     55   1001
1         20040       20001     67   1001
2         20007       20080    100   1002
3         20080       20007     50   1002

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python:数据在采样到一个小数据集后被添加了一个额外的列

来自分类Dev

python pandas添加了另一个列表中不存在的多列

来自分类Dev

Python Pandas:根据某些列比较数据框的行,并删除具有最低值的行

来自分类Dev

如何在Python中从另一个列中添加具有选定值的新列

来自分类Dev

将csv中某些列的所有值读入一个数组python

来自分类Dev

将具有相关数据的两列合并为一个列(python,pandas)

来自分类Dev

Python Dataframe - 根据现有列值的长度创建一个具有值的新列

来自分类Dev

Python Pandas-如何解开具有两个值的数据透视表,每个值变成一个新列?

来自分类Dev

Python Pandas groupby,其date列具有不同的值,然后返回一个数据框,其中date列填充了最新的日期

来自分类Dev

如何将列值与列python的第一个和最后一个值进行比较

来自分类Dev

Python:计算具有重复值的列中每个唯一值的第一个实例

来自分类Dev

Python如何在pandas数据帧的[]括号内提取指定的字符串,并创建一个具有布尔值的新列

来自分类Dev

Python如何在pandas数据帧的[]括号内提取指定的字符串,并创建一个具有布尔值的新列

来自分类Dev

Python Pandas-具有许多列的数据集-想要遍历每列,仅从非null的字段将行值添加到新列表

来自分类Dev

Pandas / Python:使用.replace()从另一个列值替换列值

来自分类Dev

如果列值在列表中,则创建一个列值-python pandas

来自分类Dev

python pandas:根据列表中列的另一个值设置列的值

来自分类Dev

比较一列中的值是否在另一列中的两个值之间python pandas

来自分类Dev

Python csv:将具有毫秒值的datetime列分组,间隔为15分钟,并添加一个带有时间段名称的新csv列

来自分类Dev

如何使用openpyxl在Python中将一个Excel文件的列值与另一个Excel文件的列值进行比较?

来自分类Dev

如何通过另一个数据框的值在python / pandas中以最有效的方式标记一个数据框的列?

来自分类Dev

python pandas获取列的最后一个值不同于其他值

来自分类Dev

如何在Python中添加具有字典值的列

来自分类Dev

Pandas \ Python:如何计算一列中最后一个相同值的数量

来自分类Dev

将多个值合并到一个新列中的一行 Pandas Python

来自分类Dev

将列从一个数据框添加到另一个python pandas

来自分类Dev

Python Pandas:在我的数据框中添加一个对变量进行计数的列

来自分类Dev

将日期(系列)列从一个DataFrame添加到其他Pandas,Python

来自分类Dev

Python将列值分组为一个值

Related 相关文章

  1. 1

    python:数据在采样到一个小数据集后被添加了一个额外的列

  2. 2

    python pandas添加了另一个列表中不存在的多列

  3. 3

    Python Pandas:根据某些列比较数据框的行,并删除具有最低值的行

  4. 4

    如何在Python中从另一个列中添加具有选定值的新列

  5. 5

    将csv中某些列的所有值读入一个数组python

  6. 6

    将具有相关数据的两列合并为一个列(python,pandas)

  7. 7

    Python Dataframe - 根据现有列值的长度创建一个具有值的新列

  8. 8

    Python Pandas-如何解开具有两个值的数据透视表,每个值变成一个新列?

  9. 9

    Python Pandas groupby,其date列具有不同的值,然后返回一个数据框,其中date列填充了最新的日期

  10. 10

    如何将列值与列python的第一个和最后一个值进行比较

  11. 11

    Python:计算具有重复值的列中每个唯一值的第一个实例

  12. 12

    Python如何在pandas数据帧的[]括号内提取指定的字符串,并创建一个具有布尔值的新列

  13. 13

    Python如何在pandas数据帧的[]括号内提取指定的字符串,并创建一个具有布尔值的新列

  14. 14

    Python Pandas-具有许多列的数据集-想要遍历每列,仅从非null的字段将行值添加到新列表

  15. 15

    Pandas / Python:使用.replace()从另一个列值替换列值

  16. 16

    如果列值在列表中,则创建一个列值-python pandas

  17. 17

    python pandas:根据列表中列的另一个值设置列的值

  18. 18

    比较一列中的值是否在另一列中的两个值之间python pandas

  19. 19

    Python csv:将具有毫秒值的datetime列分组,间隔为15分钟,并添加一个带有时间段名称的新csv列

  20. 20

    如何使用openpyxl在Python中将一个Excel文件的列值与另一个Excel文件的列值进行比较?

  21. 21

    如何通过另一个数据框的值在python / pandas中以最有效的方式标记一个数据框的列?

  22. 22

    python pandas获取列的最后一个值不同于其他值

  23. 23

    如何在Python中添加具有字典值的列

  24. 24

    Pandas \ Python:如何计算一列中最后一个相同值的数量

  25. 25

    将多个值合并到一个新列中的一行 Pandas Python

  26. 26

    将列从一个数据框添加到另一个python pandas

  27. 27

    Python Pandas:在我的数据框中添加一个对变量进行计数的列

  28. 28

    将日期(系列)列从一个DataFrame添加到其他Pandas,Python

  29. 29

    Python将列值分组为一个值

热门标签

归档