gpt4 book ai didi

python - Pandas 数据框 : swap column headings by index

转载 作者:行者123 更新时间:2023-12-03 20:38:43 25 4
gpt4 key购买 nike

我使用 Pandas 数据框来绘制 csv。用光谱仪采集的数据。

df = pd.read_csv("C:\\file.csv") # import file
输出表总是由成对组成


样本 1
无名:1
样本 2
无名:2
...


波长
传输 1
波长
传输 2
...


属于每个样本的一列(“样本 1”、“样本 2”、...),其中有关样本的相关信息存储在标题中,但该列仅包含波长信息
一列编号('Unnamed: 1', 'Unnamed: 2',...)实际包含相关测量信息
我现在想将数据显示为波长的函数。如果我通过使用删除包含冗余波长信息的所有列
df = df.drop(data.columns[1,37], axis=1, inplace=False)
我丢失了标题中包含的样本的信息
我现在正在考虑交换列标题,然后删除我不需要的列。
我当然可以使用某些东西按名称交换列
df[['sample 1','Unnamed: 1']]=df[['Unnamed: 1','sample 1']]
但随后我必须为有时包含 10 个以上成对列的每个新数据系列输入名称。
有没有办法通过索引交换标题?
或者你能想到一个更优雅的版本吗?这种表格数据输出的形式,其中标题总是跨越两列,当然不是孤立的情况。
非常感谢

最佳答案

您可以最轻松地操作这些值,而不是整个 DataFrame。
假设您的数据是:

import pandas as pd
# Example data
df = pd.DataFrame([["sample 1", "Unnamed:1", "sample 2", "Unnamed:2"], [0.614, "transmission 1", 0.68168, "transmission 2"]])



0
1
2
3


0
样本 1
无名:1
样本 2
无名:2

1
0.614
传输 1
0.68168
传输 2


现在让我们保留我们想要的值及其列标题。
vals = df.values
new_df = pd.DataFrame(vals[1,::2], index= vals[0, ::2], columns=["wavelength")
new_df 现在是:



波长


样本 1
0.614

样本 2
0.68168

关于python - Pandas 数据框 : swap column headings by index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67859725/

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