gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:03:04 25 4
gpt4 key购买 nike

我有以下 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com