data 是 pandas.core.series.Series 的实例。
>>> type(data)
<class 'pandas.core.series.Series'>
>>> data
1 002728
2 002142
3 002284
Name: scode, dtype: object
如何显示如下?
>>> data
scode
1 002728
2 002142
3 002284
Name: scode, dtype: object
您可以将其转换为数据框。关于如何执行此操作的两种选择:
import pandas as pd
data = pd.Series(['002728','002142','002284'], name = 'scode')
data = data.to_frame()
print(data)
scode
0 002728
1 002142
2 002284
或
import pandas as pd
data = pd.Series(['002728','002142','002284'], name = 'scode')
data = pd.DataFrame(data)
print(data)
scode
0 002728
1 002142
2 002284
我能立即想到的单列数据框和系列之间的唯一实际区别是索引。如果你想选择一个系列的第一个元素......你可以这样做:
data = pd.Series(['002728','002142','002284'], name = 'scode')
data[0]
# 002728
但是对于一列数据框,data[0] 不起作用。您需要执行以下操作才能获取第一行中的值:
data = pd.Series(['002728','002142','002284'], name = 'scode')
data = data.to_frame()
data.iloc[0,0]
# 002728
并获取第i行的值
data = pd.Series(['002728','002142','002284'], name = 'scode')
data = data.to_frame()
print(data.iloc[i,0])
你可以使用
data = pd.Series(['002728','002142','002284'], name = 'scode')
data = data.to_frame()
data.iloc[i]
但这会给你一个仅包含第 i 行中的值的序列。
print(type(data.iloc[0,0]))
#<class 'str'>
print(type(data.iloc[0]))
#pandas.core.series.Series
如果您的系列由数值组成...以下是乘法等矢量化方法的工作原理:
numbers = pd.Series([1,3,5,7], name = 'numbers')
print(numbers)
# 0 1
1 3
2 5
3 7
Name: numbers, dtype: int64
print(numbers*3)
#0 3
1 9
2 15
3 21
Name: numbers, dtype: int64
对于与上述系列具有相同数值的单列数据框:
numbers = pd.Series([1,3,5,7], name = 'numbers')
numbers = numbers.to_frame()
print(numbers)
# numbers
0 1
1 3
2 5
3 7
print(numbers*3)
# numbers
0 3
1 9
2 15
3 21
我的答案并非100%与问题相关,但可能对其在谷歌搜索中找到此问题的其他人有价值。
因为你有一个系列,它是数据帧的子集,通过使用索引号,你可以通过简单地在系列上添加keys()函数来获取列。
dataframe = pd.DataFrame({'A' : [1,2,3], 'B' : [4,5,6]})
for index in range(0, len(dataframe)):
series = dataframe.iloc[index]
type(series)
>> <class 'pandas.core.series.Series'>
list(series.keys())
>> ['A', 'B']