很抱歉,我的问题是基本问题还是已经回答,我对编程还是很陌生。
我正在尝试编写python脚本来自动处理一堆.csv文件,并根据ID所在的列将数据写入不同的列
例如,
import pandas as pd
df = pd.DataFrame({'ID1': ["A12", "A13", "A14"],'Data1': [0,0,0],
'ID2': ["B12", "B13", "B14"],'Data2': [0,0,0],})
给予
ID1 Data1 ID2 Data2
0 A12 0 B12 0
1 A13 0 B13 0
2 A14 0 B14 0
让我说我有关于B14的数据,我希望该数据显示在Data2
中与B14
相同的行中。使用df.iloc
是不可能的,因为我有大约400个数据集,分布在8列以上。
我想要的结果是
ID1 Data1 ID2 Data2
0 A12 0 B12 0
1 A13 0 B13 0
2 A14 0 B14 somedata
答案 0 :(得分:1)
有点不确定您在这里问什么。如果要将数据插入ID2为B14的Data2列的数据框中,可以这样:
df.loc[df.ID2 == "B14", "Data2"] = 1
答案 1 :(得分:0)
import pandas as pd
df = pd.DataFrame({'ID1': ["A12", "A13", "A14"],'Data1': [0,0,0],
'ID2': ["B12", "B13", "B14"],'Data2': [0,0,0],})
DataFrame现在是:
ID1 Data1 ID2 Data2
0 A12 0 B12 0
1 A13 0 B13 0
2 A14 0 B14 0
添加多级索引:
df.set_index(['ID1', 'ID2'], inplace=True)
DataFrame现在是:
Data1 Data2
ID1 ID2
A12 B12 0 0
A13 B13 0 0
A14 B14 0 0
查询二级索引
df2.xs('B14', level=1)
结果:
Data1 Data2
ID1
A14 0 0