在python中转换帧熊猫
Posted
技术标签:
【中文标题】在python中转换帧熊猫【英文标题】:Convert frame pandas in python 【发布时间】:2016-12-11 21:37:44 【问题描述】:我从我的 pandas 数据阅读器收到如下输出:
Date AAPL ACN
0 2016-11-21 111.730003 119.680000
1 2016-11-22 111.800003 119.480003
2 2016-11-23 111.230003 119.820000
3 2016-11-25 111.790001 120.739998
4 2016-11-28 111.570000 120.760002
我认为框架是什么样子的:
Date Minor Adj Close
0 2016-11-21 AAPL 111.730003
1 2016-11-22 AAPL 111.800003
2 2016-11-23 AAPL 111.230003
3 2016-11-25 AAPL 111.790001
4 2016-11-28 AAPL 111.570000
0 2016-11-21 ACN 119.680000
1 2016-11-22 ACN 119.480003
2 2016-11-23 ACN 119.820000
3 2016-11-25 ACN 120.739998
4 2016-11-28 ACN 120.760002
如何转换收到上述输出的代码?代码如下:
import pandas_datareader.data as pdr
DataLevels = pdr.DataReader(['ACN','AAPL'], 'yahoo', '2016-11-19', '2016-12-1')
DataLevels = DataLevels['Adj Close'].reset_index()
DataLevels.rename(columns='minor': ['ACN','AAPL'], 'Adj Close': 'Adj Close', inplace=True)
print(DataLevels)
【问题讨论】:
@MaxU 我收到以下错误消息:SyntaxError: invalid character in identifier 【参考方案1】:使用melt
将DF
从宽格式重塑为长格式:
pd.melt(df, id_vars=['Date'], value_name='Adj Close', var_name='Minor')
【讨论】:
这个解决方案要好得多;) @MaxU,谢谢。 @MCM,您可以简单地将df
替换为您的“DataLevels”:pd.melt(DataLevels['Adj Close'].reset_index(), id_vars='Date', value_name='Adj Close', var_name='Minor')
@MCM,如果你想在熔化后重命名列,你可以这样做 - pd.melt(DataLevels['Adj Close'].reset_index(), id_vars=['Date'], value_name='Adj Close', var_name='Minor').rename(columns='Minor': 'Ticker')
。由于您之前没有accepted answers,因此您可能希望这样做,以便向更广泛的社区表明此解决方案已成功解决您的问题。
@NickilMaveli 非常感谢。我只是想得更快,因为我可以删除我的帖子:)。我觉得帖子可以关了。以上是关于在python中转换帧熊猫的主要内容,如果未能解决你的问题,请参考以下文章