【问题标题】:Select colums in an indexed dataframe选择索引数据框中的列
【发布时间】:2020-04-27 12:58:57
【问题描述】:

我使用 pd.read_csv 导入了一个 csv 文件,使用了 parse_dates 和 index_col。 这导致以下数据框

DatetimeIndex: 195972 entries, 2018-02-01 to 2019-10-25
Data columns (total 19 columns):
account_manager    195972 non-null object
article_des        195896 non-null object
article_n          195972 non-null object
article_o          195972 non-null object
budget_code        195972 non-null object
budget_naam        195972 non-null object
country            195972 non-null object
currency           195972 non-null object
customer           195972 non-null object
industrie          195972 non-null object
klantnaam          195972 non-null object
month              195972 non-null int64
revenue            195972 non-null float64
revenue_local      195972 non-null float64
sap_code           195972 non-null object
volume             195972 non-null float64
week               195972 non-null int64
weight             195972 non-null float64
year               195972 non-null int64
dtypes: float64(4), int64(3), object(12)
memory usage: 20.9+ MB
None

我已经尝试了所有可能的方法来从新数据框中的该数据框中仅选择一列(权重)。它们都不起作用。什么;在索引数据框中选择列的技巧是什么? 如果我在没有 index_col 的情况下导入 csv,我可以进行任何我想要的选择。

【问题讨论】:

标签: python pandas


【解决方案1】:

df['weight'] 将返回一个系列,而df[['weight']] 将返回一个 DataFrame。

df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])

print(df)
#    a  b
# 0  1  2
# 1  3  4
print(type(df['a']))
# <class 'pandas.core.series.Series'>
print(type(df[['a']]))
# <class 'pandas.core.frame.DataFrame'>

要选择多个列,您必须传递列名列表。

print(df[['a', 'b']])
#    a  b
# 0  1  2
# 1  3  4

因此,要选择单个列作为 DataFrame,请传递一个元素的列表。

print(df[['a']])
#    a
# 0  1
# 1  3

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 2019-01-18
    • 2023-02-23
    • 2021-10-10
    • 2020-01-12
    • 2018-05-28
    • 2014-10-01
    • 2015-05-03
    • 2017-04-01
    相关资源
    最近更新 更多