【问题标题】:Get all columns into individual series from a pandas dataframe从熊猫数据框中将所有列放入单个系列中
【发布时间】:2020-03-03 01:23:39
【问题描述】:

是否可以将数据框的所有列放入单独的系列中。

例如如果我有以下数据框:

account = pd.Series(["Petty cash", "Lucky Money", "RBC USD"])
amount = pd.Series([-2.59, 1111111, 66170.97])
mapping = pd.Series(["Debt", "Equity", "Cash"])
mapping2 = pd.Series(["Yes", "Yes", "No"])

data = pd.DataFrame({
    "Account Description": account,
    "Amount": amount,
    "mapping": mapping,
    "mapping2": mapping
})

假设上面的数据框是从excel文件中获得的,而不是从上面的代码中创建的,我想在不逐行输入的情况下得到以下内容:

account = data['account']
amount = data['amount']
mapping = data['mapping']
mapping2 = data['mapping2']

问候,

【问题讨论】:

    标签: python pandas dataframe subset series


    【解决方案1】:

    为了访问 Pandas 数据框的每一列,您可以遍历它们。

    如果可以解决您的问题,请尝试以下tutorial

    # Yields a tuple of column name and series for each column in the dataframe
    for (columnName, columnData) in df.iteritems():
       print('Colunm Name : ', columnName)
       print('Column Contents : ', columnData.values)
    

    【讨论】:

    • 您好 Timo,感谢您的回答,我如何让它返回单个系列对象而不是仅仅打印它?
    • 这取决于你想用它做什么。您可以将它们放在一个列表中,但在这种情况下,最好按照您在原始问题中记录的方式访问这些列。您能否详细说明您要实现的目标以及您认为需要将列放在单独变量中的原因?
    • 也许这个以前的post 可以帮助你创建一个元组。如果只是两列,我似乎没有改进的方法。如果您需要对所有列执行此操作,您可以使用 for 循环或链接帖子中的其他答案之一。
    • 我实际上是在尝试为映射和映射创建一个自身的元组2 columns.mapping = (("Debt","Debt"), ("Equity","Equity"),( "现金”、“现金”))。数据集中的列不止两列,而且有些列有 nan 值,所以可以说映射 3 = (("Hi,Hi"), ("Bye, "Bye"),(nan,nan))。所以我打算为列中的每个系列删除na,然后只将它组合到我需要的元组中。
    猜你喜欢
    • 2020-06-03
    • 2019-10-12
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多