我使用熊猫数据框来绘制csv。用分光计获取的数据
df = pd.read_csv("C:\\file.csv") # import file
输出表始终由对组成
属于每个样本的一列(“样本1”、“样本2”和……),其中样本的相关信息存储在标题中,但该列仅包含波长信息
一个编号列(“未命名:1”、“未命名:2”和…),实际包含相关测量信息
我现在想把数据显示为波长的函数。如果我使用删除所有包含冗余波长信息的列
df = df.drop(data.columns[1,37], axis=1, inplace=False)
我丢失了标题中所含样本的信息 我现在正在考虑交换列标题,然后删除我不需要的列。 我当然可以使用一些东西按名称交换列
df[['sample 1','Unnamed: 1']]=df[['Unnamed: 1','sample 1']]
但是,我必须输入每个新数据系列的名称,这些数据系列有时包含10个以上的成对列
有没有办法通过索引交换标题? 或者你能想出一个更优雅的版本吗?这种表格数据输出形式,其中标题总是跨越两列,肯定不是一种孤立的情况。 非常感谢
我不确定您的确切意思(示例表中的一些模拟数据会很好),但假设现在每一行都是一个单独的数据帧,每两列都是示例,是否需要这样做
输出:
所有数据关系仍然保留,您只需执行
new_df.groupby('wavelength').mean()
即可找到每个波长的平均值。将mean替换为apply()
,并根据需要添加您自己的函数可以将列标签分为两部分:偶数列和奇数列。然后,在每对奇偶编号的列中交换它们的序列,如下所示:
这里,
df.columns[0::2]
和df.columns[1::2]
包含偶数列和奇数列案例1:如果只想交换列标签,而不交换列内容,可以执行以下操作:
结果:
案例2:如果要交换列序列(同时交换列标签和列内容),可以执行以下操作:
结果:
您可以最容易地操纵这些值,而不是作为一个整体操纵数据帧
假设您的数据是:
现在,让我们保留所需的值及其列标题
现在新的_df是:
相关问题 更多 >
编程相关推荐