gpt4 book ai didi

python - 用前一列名称填写空标题 - pandas

转载 作者:行者123 更新时间:2023-12-05 09:13:07 25 4
gpt4 key购买 nike

我有一个数据框,其中每个第二列名称都被跳过:

例如

enter image description here

第一步。这个想法是用以前的名称填充未命名的列以获得:

enter image description here

第 2 步。总结每个类中的“in”和“out”,得到这样的最终结果

enter image description here

中间步骤 Step_1 很重要,不能跳过以获得最终结果。

我很感激任何帮助,并为第一次尝试提问时不够清楚而道歉。谢谢

最佳答案

想法是将列转换为系列,因此可以用正向填充替换缺失值而不是以 Unnamed 开头的值:

df.columns = df.columns.to_series().mask(lambda x: x.str.startswith('Unnamed')).ffill()
print (df)
Column_1 Column_1 Column_2 Column_2
0 a d f g

编辑:

如果索引中缺少值:

df.columns = df.columns.to_series().ffill()

MultiIndex 解决方案是必要的,如果第二行也是标题 - 首先对 MultiIndex 使用 header=[0,1]:

import pandas as pd

temp=u"""Column_1;Unnamed_column;Column_2;Unnamed_column
a;d;f;g
1;5;5;6
7;8;9;4"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep=";", header=[0,1])
print (df)
Column_1 Unnamed_column Column_2 Unnamed_column
a d f g
0 1 5 5 6
1 7 8 9 4

a = df.columns.get_level_values(0)
b = df.columns.get_level_values(1)

df.columns = [a.to_series().mask(lambda x: x.str.startswith('Unnamed')).ffill(), b]
print (df)
Column_1 Column_2
a d f g
0 1 5 5 6
1 7 8 9 4

关于python - 用前一列名称填写空标题 - pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56701393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com