繁体   English   中英

Python Pandas 将列更改为标题

[英]Python Pandas Change Column to Headings

我有以下格式的数据:表 1

该数据被加载到 pandas dataframe 中。 日期列是此 dataframe 的索引。 我将如何拥有它,以便名称成为列标题(必须是唯一的)并且值对应于正确的日期。

所以它看起来像这样:

表 2

考虑以下玩具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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM