【问题标题】:Having trouble with pandas熊猫遇到麻烦
【发布时间】:2020-06-15 09:24:37
【问题描述】:
import pandas as pd 

stack = pd.DataFrame(['adam',25,28,'steve',25,28,'emily',18,21)
print(stack[0].to_list()[0::2]) 
print(stack[0].to_list()[1::2]) 
df = pd.DataFrame(
{'Name': stack[0].to_list()[0::3], 
'Age': stack[0].to_list()[1::3], 
'New Age': stack[0].to_list()[2::3] }
) 

print(df)

我如何将亚当和史蒂夫分成不同的行? 我希望它像下表一样排列。

Table

【问题讨论】:

  • 在图片上你有不同的桌子
  • 请按照this发布一个好问题。您必须举例说明您正在获得什么以及您想要获得什么。
  • 不要更改原始问题。现在我们的答案不适合您的问题。如果您有新问题,请在新页面上创建新问题。
  • 你在 lin pd.DataFrame(['adam',25,28,'steve',25,28,'emily',18,21]) 中忘记了 ],这都是你的问题。

标签: python pandas dataframe


【解决方案1】:

您可以将其作为列表获取并使用切片[0::2][1::2]

import pandas as pd

data = pd.DataFrame(['adam',22,'steve',25,'emily',18])

print(data)
#print(data[0].to_list()[0::2])
#print(data[0].to_list()[1::2])

df = pd.DataFrame({
    'Name': data[0].to_list()[0::2],
    'Age': data[0].to_list()[1::2],
})

print(df)    

之前(例如从问题中删除的原始图像)

       0
0   adam
1     22
2  steve
3     25
4  emily
5     18

之后:

    Name  Age
0   adam   22
1  steve   25
2  emily   18

编辑:图片来自原始问题


编辑:顺便说一句:与普通列表相同

import pandas as pd

data = ['adam',22,'steve',25,'emily',18]

print(data)

df = pd.DataFrame({
    'Name': data[0::2],
    'Age': data[1::2],
})

print(df)    

【讨论】:

  • import pandas as pd stack = pd.DataFrame(['adam',25,28,'steve',25,28,'emily',18,21) print(stack[0]. to_list()[0::2]) print(stack[0].to_list()[1::2]) df = pd.DataFrame({ 'Name': stack[0].to_list()[0:: 3], 'Age': stack[0].to_list()[1::3], 'New Age': stack[0].to_list()[2::3] }) print(df) 我跑了这个但我很困惑为什么它不起作用
  • 你在pd.DataFrame([...]) 中忘记了]
【解决方案2】:

这两行应该可以做到。但是,在不知道您拥有什么代码、您要完成什么或打算用它做什么的情况下,以下代码仅在这种情况下有效。

d = {'Name': ['adam', 'steve', 'emily'], 'Age': [22, 25, 18]}
df = pd.DataFrame(d)

【讨论】:

  • 另一个答案更可靠,并且适用于您的原始数据(左表)能够转换为熊猫数据框的所有情况。
猜你喜欢
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多