Press "Enter" to skip to content

Pandas如何将一列拆分成多列

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

气温里面的最高温和最低温都集中在一起了,如果这个时候我想要筛选出最高温或者低温的时候就很难操作,我们用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列拆分成多列了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注