【问题标题】:Value of column based on value of other column using pandas.apply列的值基于使用 pandas.apply 的其他列的值
【发布时间】:2022-08-11 11:36:04
【问题描述】:

我有以下数据框:

index season round number driverId position time
0 1996 1 1 villeneuve 1 1:43.702
1 1996 1 1 damon_hill 2 1:44.243
2 1996 1 1 irvine 3 1:44.981

df_laps[[\'ms\']] = 0 我可以创建一个新列小姐所有包含 value = 0 的行。

index season round number driverId position time ms
0 1996 1 1 villeneuve 1 1:43.702 0
1 1996 1 1 damon_hill 2 1:44.243 0
2 1996 1 1 irvine 3 1:44.981 0

尽管如此,价值小姐必须与价值相关时间.所以我尝试了以下df_laps[[\'ms\']] = df_laps.loc[0, [\'time\']].apply(milli),但所有值都应用了第一行的值 (1:43.702 = 103702),因为我使用 0 作为第一个 loc 参数。我如何迭代这个值,以便结果分别为:103702、104243、104981?

顺便说一句,milli 是一个将时间进入整数毫秒.你可以看到更多关于它here

index season round number driverId position time ms
0 1996 1 1 villeneuve 1 1:43.702 103702
1 1996 1 1 damon_hill 2 1:44.243 103702
2 1996 1 1 irvine 3 1:44.981 103702

换句话说,我应该怎么做才能拥有价值小姐与中的值有关时间同一行?基于https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.apply.html 我也尝试过.apply(milli, axis = 1),但随后我收到以下错误:\“milli() 得到了一个意外的关键字参数\'axis\'\”。

    标签: python pandas


    【解决方案1】:

    尝试:

    df_laps['ms'] = df_laps['ms'].apply(milli)
    

    或者:

    df_laps['ms'] = df_laps['ms'].apply(lambda x:milli(x))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 2019-10-09
      • 2019-01-10
      相关资源
      最近更新 更多