【发布时间】:2024-01-24 03:33:01
【问题描述】:
我有以下熊猫系列,ser1 形状 (100,)。
import pandas as pd
ser1 = pd.Series(...)
print(len(ser1))
## prints (100,)
这个Series中每个ndarray的长度是150000,其中每个元素都是一个字符。
len(print(ser1[0]))
## prints 150000
ser1.head()
sample1 xhtrcuviuvjhgfsrexvuvhfgshgckgvghfsgfdsdsg...
sample2 jhkjhgkjvkjgfjyqerwqrbxcvmkoshfkhgjknlkdfk...
sample3 sdfgfdxcvybnjbvtcyuikjhbgfdftgyhujhghjkhjn...
sample4 bbbbbbadfashdwkjhhguhoadfopnpbfjhsaqeqjtyi...
sample5 gfjyqedxcvrexvuvcvmkoshdftgyhujhgcvmkoshfk...
dtype: object
我想将此熊猫系列转换为熊猫数据框,这样熊猫系列“行”的每个元素都是一个数据框列。也就是说,该 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。)
如何做到这一点?
【问题讨论】:
标签: python pandas indexing dataframe