Python 从数据帧中提取列

Python 从数据帧中提取列,python,pandas,Python,Pandas,这只是一个基本的问题,但这让我很困惑。 如何从数据帧中提取列并将数据帧作为输出 假设我们有: >>> dfM <class 'pandas.core.frame.DataFrame'> DatetimeIndex: 17544 entries, 2015-01-01 00:00:00 to 2016-12-31 23:00:00 Data columns (total 23 columns): T1 17544 non-null values T2

这只是一个基本的问题,但这让我很困惑。 如何从数据帧中提取列并将数据帧作为输出

假设我们有:

>>> dfM
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 17544 entries, 2015-01-01 00:00:00 to 2016-12-31 23:00:00
Data columns (total 23 columns):
T1       17544  non-null values
T2       17544  non-null values

>>> df = dfM['T1']
dfM 日期时间索引:17544条条目,2015-01-01 00:00:00至2016-12-31 23:00:00 数据列(共23列): T1 17544非空值 T2 17544非空值 >>>df=dfM['T1'] 这里df不是一个数据帧。我通过复制数据框和删除所有列找到了一个诡计,但这非常耗时


Alexis

一种解决方案是创建一个包含所需列和原始索引的数据框:

df = pandas.DataFrame(dfM.T1, index = dfM.index)

您可以使用
[[]]
而不是
[]

df = dfM[['T1']]
例如:

from pandas import DataFrame
df = DataFrame(dict(a=range(10), b=range(10)))

type(df['b'])
# <class 'pandas.core.series.Series'>
type(df[['b']])
# <class 'pandas.core.frame.DataFrame'>
从导入数据帧
df=数据帧(dict(a=范围(10),b=范围(10)))
类型(df['b'])
# 
类型(df['b']])
# 

这是因为它将1的列表(
['b']
)传递给列子集操作符。

非常好!非常感谢。