我正在将CSV文件读入数据帧.CSV文件有一个用于不同锦标赛的组标题行.我想将这个副标题行分离到它自己的列中.稍后我将使用此行中的数据进行分析,以查看结果是否因特定的锦标赛地区而异.如何才能将副标题移到它自己的行中.我认为这将涉及到对各行进行迭代.

因此,数据如下所示

date P1 P2
USA Hamersely M45 NaN NaN
22nd Jul 2023,\n04:00 EDT 1.75 56%
22nd Jul 2023,\n05:00 EDT 1.85 76%
Canada Valley Y67 NaN NaN
22nd Jul 2023,\n19:00 EDT 2.37 26%
22nd Jul 2023,\n20:00 EDT 1.97 86%
22nd Jul 2023,\n22:00 EDT 1.75 96%

我想把这个换成

Tournament date P1 P2
USA Hamersely M45 2023/07/22 1.75 56%
USA Hamersely M45 2023/07/22 1.85 76%
Canada Valley Y67 2023/07/22 2.37 26%
Canada Valley Y67 2023/07/22 1.97 86%
Canada Valley Y67 2023/07/22 1.75 96%
import pandas as pd
import numpy as np

data = {
"Date":['USA Hamersely M45','22nd Jul 2023,\n04:00 EDT','22nd Jul 2023,\n05:00 EDT','Canada Valley Y67','22nd Jul 2023,\n04:00 EDT','22nd Jul 2023,\n05:00 EDT','22nd Jul 2023,\n22:00 EDT'],
  "p1": [np.nan, 1.75, 1.85, np.nan,2.37,1.97,1.75],
  "p2": [np.nan, '56%' , '76%', np.nan,'26%','86%','96%']
  
}

#load data into a DataFrame object:
df = pd.DataFrame(data)
df.head()```

推荐答案

try :

mask = df[["p1", "p2"]].isna().all(axis=1)

df["tmp"] = pd.to_datetime(df.loc[~mask, "Date"].str.split("\n").str[0])
df["tmp"] = df["tmp"].bfill()

df["Date"] = df.loc[mask, "Date"]
df["Date"] = df["Date"].ffill()

df = df.loc[~mask, ["Date", "tmp", "p1", "p2"]].rename(
    columns={"Date": "Tournament", "tmp": "date"}
)

print(df)

打印:

          Tournament       date    p1   p2
1  USA Hamersely M45 2023-07-22  1.75  56%
2  USA Hamersely M45 2023-07-22  1.85  76%
4  Canada Valley Y67 2023-07-22  2.37  26%
5  Canada Valley Y67 2023-07-22  1.97  86%
6  Canada Valley Y67 2023-07-22  1.75  96%

Python相关问答推荐

七段显示不完整

一切似乎都可以自己工作,但当我把它放在一起时,它会抛出RegexMatch错误

使用unmanagedexports从Python调用的c#DLC

流畅的模式,采用Escc方法

如何判断. text文件中的某个字符,然后读取该行

在Python中使用一行try

Polars Dataframe:如何按组删除交替行?

Matplotlib轮廓线值似乎不对劲

如何修复使用turtle和tkinter制作的绘画应用程序的撤销功能

列表上值总和最多为K(以O(log n))的最大元素数

当多个值具有相同模式时返回空

韦尔福德方差与Numpy方差不同

'discord.ext. commanders.cog没有属性监听器'

Mistral模型为不同的输入文本生成相同的嵌入

在线条上绘制表面

从groupby执行计算后创建新的子框架

如何获取numpy数组的特定索引值?

使用groupby方法移除公共子字符串

网格基于1.Y轴与2.x轴显示在matplotlib中

未调用自定义JSON编码器