如何使用for循环在熊猫中添加新的行和列

时间:2019-11-08 14:56:16

标签: python pandas finance

我有一个带有股票收益率的数据框(不是真实数字):

                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

我知道我的编码是错误的,但是有办法吗?循环的每次迭代都将首先附加一个新行(例如日期),然后将附加一个带有值(例如股票价格/比率/等)的列(股票行情记录)。它将继续这样做直到最后一个日期。

谢谢!

1 个答案:

答案 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,以更好地了解其工作原理。