我有一个pandas
DF,看起来像这样
测向:
name ;time_cost
x ;28800000, 250
x ;39600000, 300
x ;61200000, 250
x ;72000000, 0
y ;86400000, 0
y ;115200000, 250
y ;126000000, 300
y ;147600000, 250
y ;158400000, 0
df.head().to_dict()
{'name': {0: 'x',
1: 'x',
2: 'x',
3: 'x'},
'time_cost': {0: '28800000, 250',
1: '39600000, 300',
2: '61200000, 250',
0: '72000000, 0'}}
我试图将time\u cost的所有值放入一个数组中,如下所示:
[[[28800000, 250],
[39600000, 300],
[61200000, 250],
[72000000, 0 ],
[86400000, 0 ]],
[[115200000, 250],
[126000000, 300],
[147600000, 250],
[158400000, 0]]]
以下是我尝试过的:
import pandas as pd
df = pd.read_csv('file.csv', sep=';')
def f(df):
return pd.Series(dict(timecost_range = "%s" % '| '.join(df['time_cost'])))
result = df.groupby('name').apply(f)
result
timecost_range
name
x 28800000, 250| 39600000, 300| 61200000, 250| 72000000, 0
y 86400000, 0| 115200000, 250| 126000000, 300| 147600000, 250|...
这有点工作,但不完全是我要找的。任何想法或建议都是有用的。你知道吗
在我的例子中,数据是:
第1步。您可以使用以下方法获得结果:
输出:
第2步。如果要在数据帧中使用两个不同的列,可以使用:
输出:
第3步。然后加入他们:
输出:
然后可以使用
drop
删除“time\u cost”列,rename
根据需要重命名新列。你知道吗这是你想要的吗?我希望这会有帮助。你知道吗
升级版:
第4步。如果要按名称分组,可以使用:
它不是pythonic,但它是有效的=)
输出:
升级版:
第5步。对于您的结果,在第一步之后使用以下命令:
输出:
相关问题 更多 >
编程相关推荐