我正在解析一个更大的csv,它看起来像这样:
time id angle
0.0 1_2_3 ...
0.0 ad_42 ...
0.0 34_02_03 ...
0.1 1_2_3 ...
0.1 ad_42 ...
0.1 f_1 ...
....
正如您所看到的,id
字段在命名示意图中有很多变化,但肯定有重复的值。我的目标是读取csv并重新分配id
值,同时跟踪共同的值。因此,将代码写入到该框架中并输出如下所示会很好:
time id angle
0.0 id1 ...
0.0 id2 ...
0.0 id3 ...
0.1 id1 ...
0.1 id2 ...
0.1 id4 ...
....
其中id
s对应,但具有更易于阅读的形式(即1-x)。
如有任何建议,将不胜感激。
3条答案
按热度按时间fdbelqdn1#
您可以执行以下操作:
ids
为您提供了唯一的id值,并为每个唯一的id
分配了一个id +编号,如id_dict
中所示。然后将dictMap到列上以获得新值。请注意,您不需要担心值的顺序:
unique()
-保留值出现的顺序。对于块:
如果你正在处理块,你可以做如下操作-只需要注意识别不可用的键和索引,并附加“id”:
2hh7jdfx2#
尝试使用
pd.factorize()
或
cig3rfwq3#
一种方法是使用
hash_pandas_object()
函数对id列进行散列。由于散列每次都是可复制的,因此您将拥有一个格式一致的ID,并且随着时间的推移保持不变。以下是StackOverflow的答案:Get the same hash value for a Pandas DataFrame each time