Python 在panda dataframe中使用多列作为索引
我很抱歉,如果我的问题是初步的或已经得到了回答,我仍然是非常新的编程 我正试图编写一个python脚本来自动处理一堆.csv文件,并根据ID所在的列将数据写入不同的列 比如说,Python 在panda dataframe中使用多列作为索引,python,pandas,Python,Pandas,我很抱歉,如果我的问题是初步的或已经得到了回答,我仍然是非常新的编程 我正试图编写一个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],}) 给予
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
有点不确定你在问什么。如果要将数据插入列Data2中的数据框,其中ID2为B14,可以按如下方式执行:
df.loc[df.ID2 == "B14", "Data2"] = 1
DataFrame现在是:
ID1 Data1 ID2 Data2
0 A12 0 B12 0
1 A13 0 B13 0
2 A14 0 B14 0
Data1 Data2
ID1 ID2
A12 B12 0 0
A13 B13 0 0
A14 B14 0 0
添加多级索引:
df.set_index(['ID1', 'ID2'], inplace=True)
DataFrame现在是:
ID1 Data1 ID2 Data2
0 A12 0 B12 0
1 A13 0 B13 0
2 A14 0 B14 0
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
嗨,我不明白你的问题:你说的“我希望数据显示在数据2中与B14在同一行”是什么意思?你能同时添加你想要的输出吗?对不起,模棱两可,基本上我希望数据显示在B14的右边,我在编辑中添加了我想要的结果