我有一个 Pandas 数据框 (Python 2.11),其中一列包含时间文本(格式为 hh:mm:ss)。我只想获得小时(分钟或秒)。为此,我创建了一个列表
df.Time.str.split(":")
这样我就得到了一个列表,例如[10,23,00]
。如何访问第一个(第二个或第三个)值以继续处理数据框中的每一行?
df.Time.str.split(":")[0]
返回第一行但不返回第一个元素。
最佳答案
我认为您需要参数 expand=True
- 然后输出是 3 列 df
:
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
关于python - 从 Pandas 列表中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42625161/