[英]Python Pandas Change Column to Headings
考虑以下玩具DataFrame
:
>>> df = pd.DataFrame({'x': [1,2,3,4], 'y':['0 a','2 a','3 b','0 b']})
>>> df
x y
0 1 0 a
1 2 2 a
2 3 3 b
3 4 0 b
首先将每一行处理成一个Series
:
>>> new_columns = df['y'].apply(lambda x: pd.Series(dict([reversed(x.split())])))
>>> new_columns
a b
0 0 NaN
1 2 NaN
2 NaN 3
3 NaN 0
或者,可以使用pivot
生成新列(效果相同):
>>> new_columns = df['y'].str.split(n=1, expand=True).pivot(columns=1, values=0)
最后,连接原始和新的DataFrame
对象:
>>> df = pd.concat([df, new_columns], axis=1)
>>> df
x y a b
0 1 0 a 0 NaN
1 2 2 a 2 NaN
2 3 3 b NaN 3
3 4 0 b NaN 0
删除您不需要的任何列:
>>> df.drop(['y'], axis=1)
x a b
0 1 0 NaN
1 2 2 NaN
2 3 NaN 3
3 4 NaN 0
您需要拆分列的值,然后重命名数据框的列,然后您可以 pivot() dataframe。 我已添加以下步骤。
df[0].str.split(' ', expand = True) # assumes you only have the one column
df.columns = [“col_name”,”values”] # use whatever naming convention you like
df.pivot(columns = “col_name”,values = “values”)
请让我知道这可不可以帮你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.