【发布时间】:2020-12-18 19:31:11
【问题描述】:
我有一个原始数据框,我想在其中覆盖循环中的几列。 最后,我想将所有数据帧(在循环中生成)堆叠到一个大数据帧中(其中包含原始数据帧的 x 倍,并在此处和那里进行更改。dfs 的堆叠似乎对我不起作用(并且列 A 与 i 的乘法(与 i 相加确实有效))
通过“ID”列,我可以跟踪大数据帧中的所有不同数据帧,因为在查看 ID 时它们看起来很明显。
试用过的代码:
import pandas as pd
df_or = pd.DataFrame({"Case": [1,2,3,4,5,6],
"A": [3,5,2,8,4,1],
"B": [10,12,24,8,57,84]})
print(df_or)
total = []
for i in range(0,2):
df = df_or
df.loc[:, 'A'] = df_or.loc[:, 'A'].mul(i) #.add(i) works fine
df.loc[:, 'ID'] = df.loc[:,'Case'] + i*100000
print(df)
total.append(df)
total = pd.concat(total)
total = total.sort_values('ID')
total.reset_index(inplace=True, drop=True)
print(total)
想要的结果:
Case A B ID
0 1 0 10 1
1 2 0 12 2
2 3 0 24 3
3 4 0 8 4
4 5 0 57 5
5 6 0 84 6
6 1 3 10 100001
7 2 5 12 100002
8 3 2 24 100003
9 4 8 8 100004
10 5 4 57 100005
11 6 1 84 100006
相反,我得到:
Case A B ID
0 1 0 10 100001
1 1 0 10 100001
2 2 0 12 100002
3 2 0 12 100002
4 3 0 24 100003
5 3 0 24 100003
6 4 0 8 100004
7 4 0 8 100004
8 5 0 57 100005
9 5 0 57 100005
10 6 0 84 100006
11 6 0 84 100006
【问题讨论】:
标签: python pandas append concat