【发布时间】:2021-04-18 02:05:24
【问题描述】:
我正在尝试在 for 循环中创建 DataFrame 列表,然后将它们连接到 for 循环之外并写入 excel。我已经让代码接近了,但由于某种原因,在 for 循环中创建的列最终成为最终值,而不是循环时的每个单独值。我确信这非常简单,我只是错过了一些简单的东西,但今晚似乎无法弄清楚。这里有一些虚拟代码来说明和帮助解决问题。最后,我想要一个 wks 1 - 9 的 excel 输出。但是,在我的实际输出中,wk 列中的所有值都等于 9。
import pandas as pd
sample = []
area = pd.Series({'California':423967, 'Texas':695662})
pop = pd.Series({'California':38332521, 'Texas':26448193})
data = pd.DataFrame({'area':area, 'pop':pop})
print(data)
for i in range(10):
data['wk'] = i
sample.append(data)
print(data)
res = pd.concat(sample)
res.to_excel("Concatenating DataFrames.xlsx", index=False)
【问题讨论】:
-
data['wk'] 是一列,而不是一个元素,但您正试图为其分配一个值,在这种情况下,pandas 将使用相同的值填充该列的所有行。
-
我不确定我是否完全按照。我知道这是一个专栏。但是,我认为通过将其写入 DataFrames 列表然后将它们连接起来,它会保留它的价值。例如,当我 print(data) 显示第 1 周的第一个 DataFrame,第 2 周的第二个 DataFrame 等。最终将 DataFrame 列表连接在一起时,如何保留这些值?
标签: python pandas dataframe for-loop concatenation