python - 如何将 pandas Series 的 "rows"转换为 DataFrame 的列?

标签 python pandas indexing dataframe

我有以下 pandas 系列,形状为 (100,) 的 ser1

import pandas as pd
ser1 = pd.Series(...)
print(len(ser1)) 
##  prints (100,)

该系列中每个 ndarray 的长度为 150000,其中每个元素都是一个字符。

len(print(ser1[0]))
##  prints 150000

ser1.head()
sample1       xhtrcuviuvjhgfsrexvuvhfgshgckgvghfsgfdsdsg...
sample2       jhkjhgkjvkjgfjyqerwqrbxcvmkoshfkhgjknlkdfk...
sample3       sdfgfdxcvybnjbvtcyuikjhbgfdftgyhujhghjkhjn...
sample4       bbbbbbadfashdwkjhhguhoadfopnpbfjhsaqeqjtyi...
sample5       gfjyqedxcvrexvuvcvmkoshdftgyhujhgcvmkoshfk...
dtype: object

我想将这个 pandas 系列转换成一个 pandas DataFrame,这样这个 pandas 系列“行”的每个元素都是一个 DataFrame 列。也就是说,该 Series 数组的每个元素都是一个单独的列。在这种情况下,ser1 将有 150000 列。

print(type(df_ser1)) # DataFrame of ser1
## outputs <class 'pandas.core.frame.DataFrame'>
df_ser1.head()
     samples    char1    char2    char3    char4    char5    char6
0    sample1    x        h        t        r        c        u
1    sample2    j        h        k        j        h        g
2    sample3    s        d        f        g        f        d
3    sample4    b        b        b        b        b        b
........

如何以这种方式将 pandas Series 转换为 DataFrame?

最明显的想法是做

df_ser = ser1.to_frame

但这不会将元素分成单独的 Dataframe 列:

df_ser = ser1.to_frame
df_ser.head()
                                                       0
sample1       xhtrcuviuvjhgfsrexvuvhfgshgckgvghfsgfdsdsg...
sample2       jhkjhgkjvkjgfjyqerwqrbxcvmkoshfkhgjknlkdfk...
sample3       sdfgfdxcvybnjbvtcyuikjhbgfdftgyhujhghjkhjn...
......

不知何故,人们会遍历“系列行”的每个元素并创建一列,但我不确定这在计算上的可行性如何。 (它不是很 pythonic。)

如何做到这一点?

最佳答案

考虑一个样本系列 ser1

ser1 = pd.Series(
    'abc def ghi'.split(),
    'sample1 sample2 sample3'.split())

在将字符串设为字符列表后应用 pd.Series

ser1.apply(lambda x: pd.Series(list(x))) \
    .rename(columns=lambda x: 'char{}'.format(x + 1))

        char1 char2 char3
sample1     a     b     c
sample2     d     e     f
sample3     g     h     i

关于python - 如何将 pandas Series 的 "rows"转换为 DataFrame 的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42451489/

相关文章:

python - 将类型(字符串)转换为 pandas.core.series.Series

javascript - 如何在 Python 2.7 中打印非 ASCII 字符到文件

python - 如何计算系列对象中带有模式的字符串?

python - 通过 Web Scraping Python 检索 Imgur 图像链接

python - 基于 Django 类的 DetailView/ListView ajax 装饰器?

python - pandas 获取某个大小范围内的行子集

python - Pandas 使用列作为后缀进行透视

excel - 如果列中的单元格部分包含另一列中的文本

sql - 如何在多个不同的列上应用 Count 并使用 Hading 子句

mysql - 如何在仍然利用索引的同时在两列之间进行查询?