首页 文章

Python 3.x - 使用另一个数据帧中的列名创建数据框

提问于
浏览
0

Dataframe df1包含一个字段'Column headers',其中包含列名 . 我想创建另一个数据帧df2,它只包含df1的“列 Headers ”列中的列 Headers .

print(df1['Column header'])
>>
0                                              % Female
1                                  % Below poverty line
2                                    % Rural population
3                      Decadal Population Growth (in %)
4     Availability of Drinking Water Source Within P...
5                                 Concrete Roofs (in %)
6                        Houses With Electricity (in %)
7                        Houses With Televisions (in %)
8                           With Computer/Laptop (in %)
9        Houses With Phones (Telephone + Mobile) (in %)
10                        Houses With 2 wheelers (in %)
11                              Houses With cars (in %)
12              Households With Banking Services (in %)
13                                 Literacy Rate (in %)
14                         Literacy Rate (Rural) (in %)
15                         Literacy Rate (Urban) (in %)
16                  Decadal Difference In Literacy Rate
17                 Student: Teacher Ratio - All Schools
18                     Student: Teacher Ratio - Primary
19               Student: Teacher Ratio - Upper Primary
20     Under-five Mortality Rate (Per 1000 live Births)
21           No of Dispensaries per 1,00,000 population
22                No of Doctors per 1,00,000 population
23    Total patients registered for tuberculosis tre...
24                   Sex Ratio (Females Per 1000 Males)
25                                        Agri GSDP (%)
26                                    Industry GSDP (%)
27                                     Service GSDP (%)
28                        Unemployment Rate   (2011-12)
29                   Rural Unemployment Rate  (2011-12)
30                   Urban Unemployment Rate  (2011-12)
31                Per Capita Public Expenditure (in Rs)
32               Per Capita Private Expenditure (in Rs)
33                          Infant Mortality Rate (IMR)
34                             Maternal Mortality Rate 
35          Coverage Of National Highways (Total in km)
36             Coverage Of State Highways (Total in km)
37                Coverage Of Rural Roads (Total in km)
38                Coverage Of Urban Roads (Total in km)
39                       Railway Coverage (Total in km)
40    Tele-Density [Total Connections /  Total Popul...
Name: Column headers, dtype: object

我想创建包含40列的数据帧df2,如上所述 . 此数据框中的行将由不同的函数填充 . 我尝试按如下方式创建df2 -

df2 = pd.DataFrame()  #Creating an empty dataframe 
df2.columns = df1['Column header']
>>
ValueError: Length mismatch: Expected axis has 0 elements, new values have 41 elements

是否可以在Pandas中创建空白数据框并在之后指定列名?

2 回答

  • 3

    试试这个:

    df2 = pd.DataFrame(columns=df1['Column header'])
    

    但是你不应该创建空的DF,因为逐行填充它们非常慢 . 因此,您应首先收集数据,然后使用预先收集的数据创建DF .

  • 0

    以下是如何使用自定义列创建空数据框:

    // Example dataframe
    df1 = pd.DataFrame({"Headers": ["Alpha","Beta", "Gama", "Delta"]]}, columns=["Headers"], index=range(4))
    
    print(df1)
    //      Headers
    //   0  Alpha
    //   1  Beta
    //   2  Gama
    //   3  Delta
    
    
    print(df1['Headers'].values)
    // ['Alpha' 'Beta' 'Gama' 'Delta']
    
    // Make empty dataframe, key here is index=None
    df2 = pd.DataFrame({}, columns=df1['Headers'].values, index=None)
    
    print(df2)    
    // Empty DataFrame
    // Columns: [Alpha, Beta, Gama, Delta]
    // Index: []
    

相关问题