【问题标题】:create panda dataframe and append values in for loop创建熊猫数据框并在 for 循环中附加值
【发布时间】:2017-02-13 00:18:29
【问题描述】:

我有一个列表,我想从中迭代并在 pandas 数据框中创建元组,以模仿大小为 4 的滑动窗口。我想做的是:

tuples = pd.DataFrame()
for index, row in expertsDF.iterrows():
      newlst = row['name'] 
      counter = 0
      for x in newlst:
        if counter < len(newlst) - 3:
            tuples['A'] = x
            tuples['B'] =newlst(counter+1)
            tuples['C'] =newlst(counter+2)
            tuples['D'] =newlst(counter+3)
            counter = counter + 1

最新的看起来像这样:

list (var1, var2, var3....)

我的 DataFrame 应该是这样的:

     A       B      C       D
1   var1   var2   var3    var4
2   var2   var3   var4    var5
3   var3   var4   var5    var6

有没有办法在 python 中做到这一点?

【问题讨论】:

  • 你能发布你的输出样本吗?
  • if 条件中的代码不正确,因此我没有输出。我只是想展示我想要做什么。
  • 好的,@345243lkj 完成了!
  • 抱歉,expertsDF.iterrows() 是什么?
  • 它来自库 itertools。我用它来遍历存储我的值的初始数据帧。

标签: python list dataframe append


【解决方案1】:

这是接近了吗?

import pandas as pd
tuples = pd.DataFrame(columns=['A', 'B', 'C', 'D'])
newlst = "abcdefg"
i = 0
for x in newlst:
    if i < len(newlst) - 3:
        t = pd.DataFrame([[x, newlst[i + 1], newlst[i + 2], newlst[i + 3]]],
                         columns=['A', 'B', 'C', 'D'])
    tuples = tuples.append(t, ignore_index=True)
    i += 1
print tuples

打印出来:

   A  B  C  D
0  a  b  c  d
1  b  c  d  e
2  c  d  e  f
3  d  e  f  g

【讨论】:

    【解决方案2】:

    从 Series 对象创建 DataFrame 怎么样?

    import pandas as pd
    
    data_list = list(map(lambda x: 'var{}'.format(x),range(0,100)))
    df = pd.Series(data_list[0:97]).to_frame(name='A')
    df['B'] = pd.Series(data_list[1:98])
    df['C'] = pd.Series(data_list[2:99])
    df['D'] = pd.Series(data_list[3:100])
    
    df.head()
    
    # output
    #       A     B     C     D
    # 0  var0  var1  var2  var3
    # 1  var1  var2  var3  var4
    # 2  var2  var3  var4  var5
    # 3  var3  var4  var5  var6
    # 4  var4  var5  var6  var7
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-18
      • 2015-09-12
      • 2022-01-08
      • 2020-01-05
      • 1970-01-01
      • 2015-09-19
      • 2017-10-12
      相关资源
      最近更新 更多