python - 如何在Python中以正确的方式将一列分成两部分?

标签 python pandas dataframe split debian

我正在从网站上抓取表格,并将其放入 Excel 文件中。我的目标是以正确的方式将一列分成两列。

我要拆分的列:“STATUS”

我想要这个表格:

第一个示例:预计下午 3:17 --> 预计下午 3:17

第二个示例:延迟 3:00 PM --> 延迟并下午 3:00

第三个示例:已取消 --> 已取消且(空单元格)

所以,我需要分隔第一个单词(在第一列中),然后是下一个字符。

我怎样才能做到这一点?

这是我的相关代码,其中已经包含格式化代码。

df2 = pd.DataFrame(datatable,columns = cols)
df2['a'] = df2['FLIGHT'].str[:2]
df2['b'] = df2['FLIGHT'].str[2:].str.zfill(4)
df2["UPLOAD_TIME"] = datetime.now()
mask = np.column_stack([df2[col].astype(str).str.contains(r"Scheduled", na=True) for col in df2])
df3 = df2.loc[~mask.any(axis=1)] 

if os.path.isfile("output.csv"):
    df1 = pd.read_csv("output.csv", sep=";")
    df4 = pd.concat([df1,df3])
    df4.to_csv("output.csv", index=False, sep=";")

else:
    df3.to_csv
    df3.to_csv("output.csv", index=False, sep=";")

这是我表格中的 excel prt sc:

enter image description here

最佳答案

您可以使用str.split - n=1 用于按第一个空格分割,expand=True 用于返回 DataFrame,可以分配给新列:

df2[['c','d']] = df2['STATUS'].str.split(n=1, expand=True)

示例:

df2 = pd.DataFrame({'STATUS':['Estimated 3:17 PM','Delayed 3:00 PM']})


df2[['c','d']] = df2['STATUS'].str.split(n=1, expand=True)
print (df2)
              STATUS          c        d
0  Estimated 3:17 PM  Estimated  3:17 PM
1    Delayed 3:00 PM    Delayed  3:00 PM
<小时/>

如果输入中没有空格,则输出中为 None:

df2 = pd.DataFrame({'STATUS':['Estimated 3:17 PM','Delayed 3:00 PM', 'Canceled']})


df2[['c','d']] = df2['STATUS'].str.split(n=1, expand=True)
print (df2)
              STATUS          c        d
0  Estimated 3:17 PM  Estimated  3:17 PM
1    Delayed 3:00 PM    Delayed  3:00 PM
2           Canceled   Canceled     None

如果需要将 None 替换为空字符串,请使用 fillna :

df2[['c','d']] = df2['STATUS'].str.split(n=1, expand=True)
df2['d'] = df2['d'].fillna('')
print (df2)
              STATUS          c        d
0  Estimated 3:17 PM  Estimated  3:17 PM
1    Delayed 3:00 PM    Delayed  3:00 PM
2           Canceled   Canceled         

关于python - 如何在Python中以正确的方式将一列分成两部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46524461/

相关文章:

python - PyTorch:是否可以区分矩阵?

python - Pandas 中的字典列表

pandas - 如果不是特定长度,则将 0 附加到数据帧字符串列

python - 使用第二列的百分比变化填充列中的空值,同时按第三列分组

python - 在 Python 中仅打印有效数字

java - 尝试使用 thrift 的 TFileTransport 和 TFileProcessor 让 Python 客户端与 Java 服务器对话

python - 如何在 vs code 中缩进 jupyter 单元格/ block

python - 如何在 pandas 数据框的顶部添加一行?

python - 按每组内的降序排序

python - 在 Pandas 中使用固定列对多列应用操作