使用 Pandas Pivot from list 消除几个 Nan
Eliminate several Nan using Pandas Pivot from list
我的 python 列表是:
prop = [('City', ' Python Town'),
('Property Type', ' Townhouse'),
('Square Feet', ' 1400'),
('Zip Code', ' 5000'),
('Bathrooms', ' 3'),
('Bedrooms', ' 3'),
('MLS', ' 0202'),
('Price1', ' 1295000'),
('Posted On', ' Dec 1, 2019')]
如果我索引它,一个例子是:
prop[0][0] = City
prop[0][1] = Python Town
转换为数据帧:
df = pd.DataFrame(prop)
df.pivot(columns = 0, values = 1)
得到这个:
Bathrooms Bedrooms City MLS Posted On Price1 Property Type Square Feet Zip Code
0 NaN NaN Python Town NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN Townhouse NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN 1485 NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN 5000
4 3 NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN 3 NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN 0202 NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN 1295000 NaN NaN NaN
8 NaN NaN NaN NaN Dec 10, 2019NaN NaN NaN NaN
如何消除行索引并使其成为 1 行,同时消除所有不必要的 Nan?
在枢轴之前,您可以对其进行转换,以获得如下输出:
df.T
0 1 2 3 4 5 6 7 8
0 City Property Type Square Feet Zip Code Bathrooms Bedrooms MLS Price1 Posted On
1 Python Town Townhouse 1400 5000 3 3 0202 1295000 Dec 1, 2019
您还可以将这些列设为 headers:
df1 = df.T
new_columns = df1.T[:][0]
df1 = df1[1:]
df1.columns = new_columns
df1 = df1.reset_index(drop=True)
df1 = df1.rename_axis(columns=None)
City Property Type Square Feet Zip Code Bathrooms Bedrooms MLS Price1 Posted On
0 Python Town Townhouse 1400 5000 3 3 0202 1295000 Dec 1, 2019
取决于您想要的格式。
我不会为这么小的东西使用 pivot。您可以在制作 dataFrame
之前或之后转置
>> import numpy as np
>> df = pd.DataFrame(np.transpose(prop))
>> print(df)
0 1 2 ... 6 7 8
0 City Property Type Square Feet ... MLS Price1 Posted On
1 Python Town Townhouse 1400 ... 0202 1295000 Dec 1, 2019
如果要第一行作为索引:
>> df.columns = df.loc[0]
>> df.drop(0, axis=0, inplace=True)
>> df.reset_index(drop=True, inplace=True)
>> print(df)
City Property Type ... Price1 Posted On
0 Python Town Townhouse ... 1295000 Dec 1, 2019
我的 python 列表是:
prop = [('City', ' Python Town'),
('Property Type', ' Townhouse'),
('Square Feet', ' 1400'),
('Zip Code', ' 5000'),
('Bathrooms', ' 3'),
('Bedrooms', ' 3'),
('MLS', ' 0202'),
('Price1', ' 1295000'),
('Posted On', ' Dec 1, 2019')]
如果我索引它,一个例子是:
prop[0][0] = City
prop[0][1] = Python Town
转换为数据帧:
df = pd.DataFrame(prop)
df.pivot(columns = 0, values = 1)
得到这个:
Bathrooms Bedrooms City MLS Posted On Price1 Property Type Square Feet Zip Code
0 NaN NaN Python Town NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN Townhouse NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN 1485 NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN 5000
4 3 NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN 3 NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN 0202 NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN 1295000 NaN NaN NaN
8 NaN NaN NaN NaN Dec 10, 2019NaN NaN NaN NaN
如何消除行索引并使其成为 1 行,同时消除所有不必要的 Nan?
在枢轴之前,您可以对其进行转换,以获得如下输出:
df.T
0 1 2 3 4 5 6 7 8
0 City Property Type Square Feet Zip Code Bathrooms Bedrooms MLS Price1 Posted On
1 Python Town Townhouse 1400 5000 3 3 0202 1295000 Dec 1, 2019
您还可以将这些列设为 headers:
df1 = df.T
new_columns = df1.T[:][0]
df1 = df1[1:]
df1.columns = new_columns
df1 = df1.reset_index(drop=True)
df1 = df1.rename_axis(columns=None)
City Property Type Square Feet Zip Code Bathrooms Bedrooms MLS Price1 Posted On
0 Python Town Townhouse 1400 5000 3 3 0202 1295000 Dec 1, 2019
取决于您想要的格式。
我不会为这么小的东西使用 pivot。您可以在制作 dataFrame
之前或之后转置>> import numpy as np
>> df = pd.DataFrame(np.transpose(prop))
>> print(df)
0 1 2 ... 6 7 8
0 City Property Type Square Feet ... MLS Price1 Posted On
1 Python Town Townhouse 1400 ... 0202 1295000 Dec 1, 2019
如果要第一行作为索引:
>> df.columns = df.loc[0]
>> df.drop(0, axis=0, inplace=True)
>> df.reset_index(drop=True, inplace=True)
>> print(df)
City Property Type ... Price1 Posted On
0 Python Town Townhouse ... 1295000 Dec 1, 2019