如何在Pandas中将DataFrame的variable列拆分为Type和Parameter列?
拆分DataFrame的"variable"列为"Type"和"Parameter"两列
你之前写的weatherData = weatherData['variable'].str.split('_', 1)其实已经完成了拆分动作,但问题在于这个操作只是返回了一个包含拆分后元素的Series(每个元素是一个列表),并没有把这些值作为新列添加到原DataFrame里,所以才没得到预期结果。
这里给你两种简洁的解决方案:
方案一:一步到位拆分并添加新列
直接将拆分结果赋值给新的列名,expand=True参数会让str.split返回一个多列的DataFrame,刚好对应我们需要的Type和Parameter:
import pandas as pd # 假设你的原始DataFrame是weatherData weatherData[['Type', 'Parameter']] = weatherData['variable'].str.split('_', 1, expand=True)
方案二:分步拆分合并(更直观)
如果想更清晰地看到每一步的操作,可以拆分后再合并:
# 拆分variable列,得到临时的两列DataFrame split_result = weatherData['variable'].str.split('_', 1, expand=True) # 给临时DataFrame设置列名 split_result.columns = ['Type', 'Parameter'] # 将临时列合并回原DataFrame weatherData = pd.concat([weatherData, split_result], axis=1)
运行以上任意一种代码后,你的DataFrame就会新增Type和Parameter列,完全符合你给出的预期结果:
BatchNumber PhaseNumber SiteID variable Values Type Parameter
0 4552694035 0020B 2 min_tempC 27.0 min tempC
1 4552694035 OverAll 2 max_tempF 24.0 max tempF
额外提示
如果你的variable列中存在没有下划线的异常值,拆分后对应的Type或Parameter会出现NaN。你可以用fillna来处理这些缺失值,比如统一填充为"Unknown":
weatherData[['Type', 'Parameter']] = weatherData['variable'].str.split('_', 1, expand=True).fillna('Unknown')
内容的提问来源于stack exchange,提问作者Tarun Khaneja
相关产品推荐
相关产品推荐

