【发布时间】:2020-04-24 02:55:52
【问题描述】:
几个月前我刚开始学习 Python,也刚开始使用 StackOverflow,请多多包涵:
我们有两个数据框:
df1:
0.1,0.2,0.3,0.4
1.0,2.0,3.0,4.0
6.0,7.0,8.0,9.0
df2:
Sequence, dataset_ID
1,1
2,4
10,5
我正在使用 python iterrows 函数将 df1 转置为:
for ind,row in df1.iterrows():
row.to_csv(path+'\df1Transposed')
df1转置:
0.1,1.0
0.2,2.0
0.3,3.0
0.4,4.0
0.1,6.0
0.2,7.0
0.3,8.0
0.4,9.0
我正在尝试找到一种对 df2 中的每一行进行分组/复制以匹配 df1 转置的行数的好方法。例如,df 1 中的 1 个转置标题和行在 df1Transposed (0.1-0.4) 中创建 4 行和 2 列,并为 df1 中的下一行再次重复。所以 df2 中的第一行应该重复 4 次,然后第二行应该再重复 4 次。
dfout:
Sequence, dataset_ID,V,I
1,1,0.1,1.0
1,1,0.2,2.0
1,1,0.3,3.0
1,1,0.4,4.0
2,4,0.1,6.0
2,4,0.2,7.0
2,4,0.3,8.0
2,4,0.4,9.0
【问题讨论】:
-
df2 中的第三行发生了什么?
-
对于转置部分,你可以用这个避免迭代:
pd.concat([df1.iloc[:2].T, df1.iloc[::2].T.set_axis([0,1],axis=1)],ignore_index=True) -
抱歉,我们可以暂时忽略第三行 - 显示的只是我整个数据框的一部分
标签: python python-3.x excel pandas csv