从熊猫列表中获取价值

Ale*_*lex 1 python list pandas

我有一个熊猫数据框(Python 2.11),其中包含一列中的文本时间(格式为hh:mm:ss).我想只得到小时(减去或秒).为此,我创建了一个列表

df.Time.str.split(":")
Run Code Online (Sandbox Code Playgroud)

这样我得到一个列表,例如[10,23,00].如何访问第一个(第二个或第三个)值以继续为数据框中的每一行工作?

df.Time.str.split(":")[0]
Run Code Online (Sandbox Code Playgroud)

返回第一行但不返回第一行.

jez*_*ael 5

我认为你需要参数expand=True- 然后输出是3列df:

df.Time.str.split(":", expand=True)
Run Code Online (Sandbox Code Playgroud)

样品:

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
Run Code Online (Sandbox Code Playgroud)

如果不需要所有值,则可以使用.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
Run Code Online (Sandbox Code Playgroud)