Pandas 使用for loop-->;从旧数据帧行创建新数据帧列;不适用值
我创建了一个数据帧df1:Pandas 使用for loop-->;从旧数据帧行创建新数据帧列;不适用值,pandas,for-loop,dataframe,Pandas,For Loop,Dataframe,我创建了一个数据帧df1: df1 = pd.read_csv('FBK_var_conc_1.csv', names = ['Cycle', 'SQ']) df1 = df1['SQ'].copy() df1 = df1.to_frame() df1.head(n=10) SQ 0 2430.0 1 2870.0 2 2890.0 3 3270.
df1 = pd.read_csv('FBK_var_conc_1.csv', names = ['Cycle', 'SQ'])
df1 = df1['SQ'].copy()
df1 = df1.to_frame()
df1.head(n=10)
SQ
0 2430.0
1 2870.0
2 2890.0
3 3270.0
4 3350.0
5 3520.0
6 26900.0
7 26300.0
8 28400.0
9 3230.0
然后创建了第二个数据帧df2,我想用DF1的行值填充它:
df2 = pd.DataFrame()
for x in range(12):
y='Experiment %d' % (x+1)
df2[y]= df1.iloc[3*x:3*x+3]
df2
我从df2中的实验1-实验12中得到列名,第一列用正确的值填充,但后面的所有列都用N/A填充
> Experiment 1 Experiment 2 Experiment 3 Experiment 4 Experiment 5 Experiment 6 Experiment 7 Experiment 8 Experiment 9 Experiment
> 10 Experiment 11 Experiment 12
> 0 2430.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
> 1 2870.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
> 2 2890.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
在过去的两个小时里,我一直在研究这个问题,但是我不明白为什么列1后面的列没有填充值
期望输出:
Experiment 1 Experiment 2 Experiment 3 Experiment 4 Experiment 5 Experiment 6 Experiment 7 Experiment 8 Experiment 9 Experiment 10 Experiment 11 Experiment 12
2430 3270 26900 3230 2940 243000 256000 249000 2880 26100 3890 33400
2870 3350 26300 3290 3180 242000 254000 250000 3390 27900 3730 30700
2890 3520 28400 3090 3140 253000 260000 237000 3510 27400 3760 29600
我发现了问题
我必须使用.values
因此,循环的最后一行必须是:
df2[y] = df1.iloc[3*x:3*x+3].values
我得到了正确的输出你能添加
df1.head(n=5)
是的,我添加了它,你能在你的问题中添加前5行所需的输出吗?是的,我将它编辑到我的问题中