我有一个带有股票收益率的数据框(不是真实数字):
AAPL GOOG ... FB NTFLX
Date ...
2016-03-01 0.001123 -0.001124 ... 0.004314 0.001234
2016-03-02 -0.000423 -0.000125 ... -0.005534 -0.002163
2016-03-03 -0.000714 0.001121 ... -0.009162 -0.005241
2016-03-04 -0.007522 0.005126 ... -0.007142 -0.003642
2016-03-07 -0.001324 -0.009123 ... -0.005352 0.001337
... ... ... ... ...
2019-10-25 0.005234 0.000326 ... 0.000123 -0.002827
2019-10-28 0.006274 -0.000706 ... -0.001376 -0.006558
2019-10-29 0.000016 -0.000822 ... 0.005583 -0.003556
2019-10-30 -0.000411 0.003213 ... -0.009223 0.002566
2019-10-31 0.002146 0.001757 ... -0.002734 -0.003144
我想用相同的行和列创建一个新的数据框,但是我想通过如下的for循环来构建它:
new_df = pd.DataFrame()
for row in df.index:
for column in df.columns:
new_df.loc[row] = {column: data_df[column]}
### data_df is just a data frame that looks like the one above but with other stock info
我知道我的编码是错误的,但是有办法吗?循环的每次迭代都将首先附加一个新行(例如日期),然后将附加一个带有值(例如股票价格/比率/等)的列(股票行情记录)。它将继续这样做直到最后一个日期。
谢谢!
答案 0 :(得分:0)
尝试:
new_df = pd.DataFrame()
for row in df.index:
for column in df.columns:
new_df.loc[row, column] = df.loc[row, column]
# Here df can be any dataframe from wich you want to copy values
使用此代码,您正在做的是逐行,逐列复制值。
另外,请尝试阅读loc documentation,以更好地了解其工作原理。