从熊猫列表中获取价值
问题描述:
我有一个熊猫数据框(Python 2.11),其中包含时间作为一列中的文本(格式hh:mm:ss)。我只想获得小时数(minus或seconds)。为此,我创建一个清单从熊猫列表中获取价值
df.Time.str.split(":")
这样我得到一个清单,例如[10,23,00]
。如何访问第一个(第二个或第三个)值以继续处理数据框中的每一行?
df.Time.str.split(":")[0]
返回第一行而不是第一个元素。
答
我认为你需要的参数expand=True
- 那么输出的df
3列:
df.Time.str.split(":", expand=True)
样品:
df = pd.DataFrame({'Time':['10:23:00', '11:23:00']})
print (df)
Time
0 10:23:00
1 11:23:00
df[['hour','minute','seconds']] = df.Time.str.split(":", expand=True)
print (df)
Time hour minute seconds
0 10:23:00 10 23 00
1 11:23:00 11 23 00
如果不需要所有的值可以使用.str[]
的列表中选择值 - docs:
df['hour'] = df.Time.str.split(":").str[0]
df['minute'] = df.Time.str.split(":").str[1]
print (df)
Time hour minute
0 10:23:00 10 23
1 11:23:00 11 23
展开很好:-) + 1 – pansen
@pansen - 谢谢。 – jezrael