Pandas`loc`在除一列以外的所有列上返回空数据帧

2024-09-25 00:31:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试基于列值访问某些行。我读了一个CSV

df = pd.read_csv("edges.txt", dtype=str)

将创建以下数据帧:

        TripId          MatchId   StartHour   Source      Destination
0       20120401017000  0         7           28819367    52408159
1       20120401017000  0         7           52408159    62804102
2       20120401017000  0         7           62804102    65398897
3       20120401017000  0         7           65398897    65398897
4       20120401017000  0         7           74066894    77482478
...     ...             ...       ...         ...         ...
62014   20120430097008  1         18          78141321    88912706
62015   20120430097008  1         18          88912706    218287467
62016   20120430097008  1         18          218287467   236637429
62017   20120430097008  1         18          236637429   245325123
62018   20120430097008  1         18          245325123   245374827

当我使用特定的ID访问旅行时,它可以正常工作:

df.loc[df["TripId"] == "20120401017000"]
      TripId            MatchId   StartHour  Source      Destination
0     20120401017000    0         7          28819367    52408159
1     20120401017000    0         7          52408159    62804102
2     20120401017000    0         7          62804102    65398897
3     20120401017000    0         7          65398897    74066894
4     20120401017000    0         7          74066894    77482478
...   ...               ...       ...        ...         ...
86    20120401017000    2         7          330994406   484314696
87    20120401017000    2         7          484314696   502572843
88    20120401017000    2         7          502572843   758286629
89    20120401017000    2         7          758286629   791164312
90    20120401017000    2         7          791164312   974728472

但是,当我尝试访问具有特定MatchId的行时,它返回一个空的数据帧:

df.loc[df["MatchId"] == "2"]
TripId  MatchId  StartHour  Source  Destination

TripId之外的每一列都相同:

df.loc[df["Source"] == "283782532"]
TripId  MatchId  StartHour  Source  Destination

我对此有点困惑TripId不是一个索引,它看起来也没有什么特别之处。我确保每个值都是一个字符串:

df.dtypes
TripId         object
MatchId        object
StartHour      object
Source         object
Destination    object
dtype: object

我有点困惑为什么除了TripId之外的每一列都返回一个空的数据帧TripId不是一个索引,它看起来也没有什么特别之处。 如何访问除TripId以外的列具有特定值的行

谢谢你


Tags: csv数据sourcedfreadobjectdestinationloc