我的实验室仪器提供了一个数据集,格式如下。
| 语音合成|周期1|
| --------------|--------------|
| 波长(nm)|吸光度|
| 一百|十二岁|
| 两百|二十三|
| 三百|十七岁|
| 四百|十四岁|
| 语音合成|周期2|
| 波长(nm)|吸光度|
| 一百|七十三|
| 两百|二十五|
| 三百|一百七十九|
| 四百|十五岁|
| 语音合成|周期3|
| 波长(nm)|吸光度|
| 一百|六十|
| 两百|四十五|
| 三百|十二岁|
| 四百|一百|
我想将每个周期单独划分为一组独特的列,如下所示,以便于后续分析。
| 波长(循环1)|吸光度(循环1)|波长(循环2)|吸光度(循环2)|波长(循环3)|吸光度(循环3)|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 一百|十二岁|一百|七十三|一百|六十|
| 两百|二十三|两百|二十五|两百|四十五|
| 三百|十七岁|三百|一百七十九|三百|十二岁|
| 四百|十四岁|四百|十五岁|四百|一百|
在www.example.com _csv()函数中似乎没有用于这种分隔形式的分隔符pd.read。我无法找到使用df.iloc[]、df.groupby()或Series.str.split()函数执行此操作的方法。
类似的问题以前已经在这里讨论过:Python Reshape Column Into Multiple Columns - Alternating Rows
在这种情况下,每个循环中的行数并不总是一致的,因此,我不相信整形会起作用。
1条答案
按热度按时间gpnt7bae1#
首先在
read_csv
中使用header=None
参数创建默认0,1
列的DataFrame:然后创建组识别周期,这里是比较第一列
TTS
和重复第二列值c
列和混凝土组g
由GroupBy.cumcount
,所以可能的旋转和创建列表解析中的最终列名称:如果每个周期的波长相同,则可以创建一个色谱柱: