Pandas 转换数据框以根据行条件获取列名称

Ale*_*o A 1 python pandas

我有一个包含汽车和特定区域速度的数据框。

\n

我想转换数据帧,这样我就知道每个区域哪辆车的速度大于 100,因此我为每辆车获取一行和两列,根据 100 值区分区域。

\n

输入:

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
车号\xc2\xa0speed_t1\xc2\xa0speed_t2速度_t3速度_t4
1.908012034
2.11013014099
3.4011020110
\n
\n

预期输出:

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n
车号正常速度高速_t
1.速度_t1,速度_t2,速度_t4速度_t3
2.速度_t4速度_t1,速度_t2,速度_t3
3.速度_t1,速度_t3速度_t2,速度_t4
\n

jez*_*ael 5

用于DataFrame.dot列名称带有分隔符的非迭代解决方案,因此有必要,通过以下方式删除最后一个值Series.str.strip

df.assign(normal_speed_t=(df<100).dot(df.columns + ',').str.strip(','),
          high_speed_t=(df>=100).dot(df.columns + ',').str.strip(','))
Run Code Online (Sandbox Code Playgroud)