在列表的数据框中保留一个元素

时间:2020-07-13 11:49:27

标签: python pandas dataframe

给出以下数据框:

  Movement Distance     Speed   Delay    Loss
0   [1, 1]   [1, 1]  [25, 25]  [0, 0]  [0, 0]
1   [1, 1]   [1, 1]  [25, 25]  [0, 0]  [0, 0]
2   [1, 1]   [1, 1]  [25, 25]  [0, 0]  [0, 0]
3   [1, 1]   [1, 1]  [25, 25]  [0, 0]  [0, 0]
4   [1, 1]   [1, 1]  [25, 25]  [0, 0]  [0, 0]

如何删除每列中除第一个元素之外的所有元素,然后取消列出,使数据框变成这样:

  Movement Distance     Speed   Delay    Loss
0   1      1            25      0        0
1   1      1            25      0        0
2   1      1            25      0        0
3   1      1            25      0        0
4   1      1            25      0        0

1 个答案:

答案 0 :(得分:3)

您可以将applystr.slice或等效地建立索引:

df.apply(lambda x: pd.to_numeric(x.str[0], downcast='integer', errors='ignore'))

或者如果数据已经干净了,我们在熊猫1.0中新增了convert_dtypes(感谢cs95):

df.apply(lambda x: x.str[0]).convert_dtypes()

   Movement  Distance  Speed  Delay  Loss
0         1         1     25      0     0
1         1         1     25      0     0
2         1         1     25      0     0
3         1         1     25      0     0
4         1         1     25      0     0