在做数据分析的过程中,我们有时候会遇到一种这样的情况,一列数据中有多个数据有多组数据是在一起的,我们没法根据数据列来进行筛选,例如下图所示:

气温里面的最高温和最低温都集中在一起了,如果这个时候我想要筛选出最高温或者低温的时候就很难操作,我们用pandas来处理就很容易把它拆分成多列,下面我用一个例子来演示一下:
首先在vscode导入一份数据,并打印出前40条数据看看
import pandas as pd
pd.set_option('display.unicode.ambiguous_as_wide', True) #处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True) #无法对齐主要是因为列标题是中文
df=pd.read_excel(r'data\2013tianqi.xls',encoding='gbk')
print(df.head(40))

我们看打印出来的数据月份之间会有1列是空值,这时我们需要把空值去掉,方法如下:
import pandas as pd
pd.set_option('display.unicode.ambiguous_as_wide', True) #处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True) #无法对齐主要是因为列标题是中文
df=pd.read_excel(r'data\2013tianqi.xls',encoding='gbk')
#删除数据中所有的空行
df.dropna(axis=0,how='all',inplace=True)
print(df.head(40))

这样我们就把空行给删除掉了,接下来,我们把气温这1列数据拆分成2列,分别是最高温度和最低温度,方法如下:
import pandas as pd
pd.set_option('display.unicode.ambiguous_as_wide', True) #处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True) #无法对齐主要是因为列标题是中文
df=pd.read_excel(r'data\2013tianqi.xls',encoding='gbk')
#删除数据中所有的空行
df.dropna(axis=0,how='all',inplace=True)
#拆分列
df['最高温度']=df['气温'].apply(lambda x: x.split('/')[0])
df['最低温度']=df['气温'].apply(lambda x: x.split('/')[1])
print(df.head(40))

好了,这样就完成把1列拆分成多列了。