[英]Python list of lists to pandas DataFrame
I have this sample code below that turns a Python list of lists into a pandas DataFrame, but I need to DataFrame orientation to be inversed, any idea how to achieve this?
import numpy as np
import pandas as pd
from IPython.display import display, HTML
i = np.zeros(10)
i.fill(40)
j = np.zeros(10)
j.fill(60)
df = pd.DataFrame([i, j])
display(df)
这个的output是这样的结构:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 | 40 |
1 | 60 | 60 | 60 | 60 | 60 | 60 | 60 | 60 | 60 | 60 |
但是,我想要的是获得这样的结构,我怎样才能将列表列表转换为这种格式?
0 | 1 |
---|---|
40 | 60 |
40 | 60 |
40 | 60 |
40 | 60 |
40 | 60 |
40 | 60 |
40 | 60 |
40 | 60 |
40 | 60 |
只需转置 dataframe:
df = df.T
或首先以您想要的方式准备您的df:
df = pd.DataFrame({0: i, 1: j})
output:
>>
0 1
0 40.0 60.0
1 40.0 60.0
2 40.0 60.0
3 40.0 60.0
4 40.0 60.0
5 40.0 60.0
6 40.0 60.0
7 40.0 60.0
8 40.0 60.0
9 40.0 60.0
建议尝试
df.transpose()
为目的。
让我们尝试直接创建一个两列 dataframe
df = pd.DataFrame(zip(i, j))
# or specify the column header
df = pd.DataFrame(zip(i, j), columns=['a', 'b'])
print(df)
0 1
0 40.0 60.0
1 40.0 60.0
2 40.0 60.0
3 40.0 60.0
4 40.0 60.0
5 40.0 60.0
6 40.0 60.0
7 40.0 60.0
8 40.0 60.0
9 40.0 60.0
如果您想在创建 dataframe 之前更正此问题,您可以使用numpy.column_stack
然后创建 dataframe。
inp_arr = np.column_stack((i,j))
df = pd.DataFrame(inp_arr)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.