如何拼接DataFrame与Series并生成指定格式的单行DataFrame?
Pandas:将Series转为指定列名的单行DataFrame
问题描述
我想了解如何将DataFrame与Series进行拼接,尝试执行了以下代码:
df_columns = ['A', 'B', 'C', 'D'] df_series = pd.Series([1,2,3,'N/A'],index = df_columns) df = pd.DataFrame(df_series) df
运行后得到如下输出:
A 1 B 2 C 3 D 'N/A'
请问如何修改代码,使输出为以下格式,且df_columns仍为DataFrame的列名:
A B C D 1 2 3 'N/A'
解决方法
以下几种方法都能实现需求:
方法1:转置Series生成的DataFrame
先将Series转为DataFrame,再通过.T转置,让原Series的索引成为列名,值变为单行数据:
import pandas as pd df_columns = ['A', 'B', 'C', 'D'] df_series = pd.Series([1,2,3,'N/A'], index=df_columns) df = df_series.to_frame().T print(df)
方法2:直接基于Series值创建DataFrame
用Series的values属性获取数据,以列表形式传入pd.DataFrame,同时指定columns参数为df_columns:
import pandas as pd df_columns = ['A', 'B', 'C', 'D'] df_series = pd.Series([1,2,3,'N/A'], index=df_columns) df = pd.DataFrame([df_series.values], columns=df_columns) print(df)
方法3:通过字典创建DataFrame
将Series转为字典,再用pd.DataFrame.from_dict方法,设置orient='columns'来指定列名来源:
import pandas as pd df_columns = ['A', 'B', 'C', 'D'] df_series = pd.Series([1,2,3,'N/A'], index=df_columns) df = pd.DataFrame.from_dict(df_series.to_dict(), orient='columns') print(df)
以上三种方法运行后都会输出你需要的格式,且df_columns会作为DataFrame的列名。
内容的提问来源于stack exchange,提问作者BannyM
相关产品推荐
相关产品推荐

