我必须处理一个结构如下的数据框:
print (df)
2012-02-23~2012-02-29 2012-03-01~2012-03-08
Team A 213 3213
Team B 321 3213
我正在尝试修改列名以提取字符〜之后的日期部分。
df = pd.read_excel('test.xlsx')
df.columns = df.columns.str.extract(r'~(.*)')
df
我正在使用上面的代码,但是得到的结果如下:
print (df)
(2012-02-29,) (2012-03-08,)
Team A 213 3213
Team B 321 3213
问题是逗号来自何处?以及为什么每列中都有(),我的目标是获取下表,并将datetype转换为datestamp。
2012-02-29 2012-03-08
Team A 213 3213
Team B 321 3213
答案 0 :(得分:1)
我认为expand=False
在这里应避免将MultiIndex
转换为元组:
df.columns = df.columns.str.extract(r'~(.*)', expand=False)
print (df)
2012-02-29 2012-03-08
Team A 213 3213
Team B 321 3213
或将split
与列表的第二个值一起使用:
df.columns = df.columns.str.split('~').str[1]
print (df)
2012-02-29 2012-03-08
Team A 213 3213
Team B 321 3213