Python 从另一个DataFrame创建DataFrame.Descripte()
这是我的密码Python 从另一个DataFrame创建DataFrame.Descripte(),python,pandas,append,Python,Pandas,Append,这是我的密码 import pandas as pd df = pd.DataFrame({'Test': [861166021755746, 861166021755746, 861166021755746]}) df_2 = pd.DataFrame(df['Test'].describe(), columns = ['Test2']) print(df.describe()) print(df_2.describe()) 这是输出 Test count 3.000000e+00 me
import pandas as pd
df = pd.DataFrame({'Test': [861166021755746, 861166021755746, 861166021755746]})
df_2 = pd.DataFrame(df['Test'].describe(), columns = ['Test2'])
print(df.describe())
print(df_2.describe())
这是输出
Test
count 3.000000e+00
mean 8.611660e+14
std 0.000000e+00
min 8.611660e+14
25% 8.611660e+14
50% 8.611660e+14
75% 8.611660e+14
max 8.611660e+14
Test2
count 0
unique 0
我无法理解为什么df
和df_2
的输出不同,您需要添加:
这是不同的,因为数据帧是不同的:
print df
print df_2
Test
0 861166021755746
1 861166021755746
2 861166021755746
Test2
0 3.000000e+00
1 8.611660e+14
2 0.000000e+00
3 8.611660e+14
4 8.611660e+14
5 8.611660e+14
6 8.611660e+14
7 8.611660e+14
如果不能使用tolist()
,则会得到空的df_2
:
import pandas as pd
df = pd.DataFrame({'Test': [861166021755746, 861166021755746, 861166021755746]})
df_2 = pd.DataFrame(df['Test'].describe(), columns = ['Test2'])
print df
Test
0 861166021755746
1 861166021755746
2 861166021755746
print df_2
Empty DataFrame
Columns: [Test2]
Index: []
问题在于如何创建
df_2
。当您说columns=['Test2']
时,您将丢弃df['Test']中所有未命名为Test2
的列。但是没有名为Test2
的列。因此,您抛出了所有列,结果是一个空的数据帧
要执行所需操作,请提供一个字典,其键为新列名Test2
,其值为df['Test']。description()
:
以便:
>>> print(df.describe())
Test
count 3.000000e+00
mean 8.611660e+14
std 0.000000e+00
min 8.611660e+14
25% 8.611660e+14
50% 8.611660e+14
75% 8.611660e+14
max 8.611660e+14
>>> print(df_2)
Test2
count 3.000000e+00
mean 8.611660e+14
std 0.000000e+00
min 8.611660e+14
25% 8.611660e+14
50% 8.611660e+14
75% 8.611660e+14
max 8.611660e+14
非常感谢你!当然,它们是不同的。我的意思是我希望第二个是非空的。你知道我为什么需要tolist()
。如果我使用series\u test=pd.series([1,2,3,4,5,6])df\u 3=pd.DataFrame(series\u test,columns=['Test3'])
,那么我会得到非空的DataFrame
df = pd.DataFrame({'Test': [861166021755746, 861166021755746, 861166021755746]})
df_2 = pd.DataFrame({'Test2': df['Test'].describe()})
>>> print(df.describe())
Test
count 3.000000e+00
mean 8.611660e+14
std 0.000000e+00
min 8.611660e+14
25% 8.611660e+14
50% 8.611660e+14
75% 8.611660e+14
max 8.611660e+14
>>> print(df_2)
Test2
count 3.000000e+00
mean 8.611660e+14
std 0.000000e+00
min 8.611660e+14
25% 8.611660e+14
50% 8.611660e+14
75% 8.611660e+14
max 8.611660e+14