繁体   English   中英

如何将多个 numpy 数组组合成一个数据帧?

[英]How to combine multiple numpy arrays into a dataframe?

我有 4 个 numpy 数组,每个数组有 5 个值。 我需要将它们组合成一个数据帧,以便我可以运行 ANOVA 测试和 Tukey 诚实显着差异测试。

数组是:

low = np.array([59.5, 53.3, 56.8, 63.1, 58.7]) # 1.6 nmhos/cm
med = np.array([55.2, 59.1, 52.8, 54.5, np.nan]) # 3.8
medh = np.array([51.7, 48.8, 53.9, 49.0, np.nan]) # 6.0
high = np.array([44.6, 48.5, 41.0, 47.3, 46.1]) # 10.2

我需要将这些组合成一个数据框,打印时会产生以下内容:

         Yield  EC  
0        59.5   Low      
1        53.3   Low  
2        56.8   Low  
3        63.1   Low    
4        58.7   Low  
5        55.2   Med  
6        59.1   Med  
7        52.8   Med  
8        54.5   Med  
9        NaN    Med  
10       51.7   Medh  
11       48.8   Medh  
12       53.9   Medh  
13       49.0   Medh  
14       NaN    Medh  
15       44.6   high  
16       48.5   high  
17       41.0   high  
18       47.3   high  
19       46.1   high  

实现这一目标的最佳方法是什么? 我尝试组合成一个 numpy 数组并将其传递到数据帧中,但我收到错误消息“必须通过二维输入”

data_vals = np.array([[low],[med],[medh],[high]])
tomato_df = pd.DataFrame(data = data_vals)

您需要将它们转换为数据帧,然后append

df_low = pd.DataFrame(low)
df_low['EC'] = 'Low'
df_med = pd.DataFrame(med)
df_med['EC'] = 'Med'
df_medh = pd.DataFrame(medh)
df_medh['EC'] = 'Medh'
df_high = pd.DataFrame(high)
df_high['EC'] = 'High'

df = df_low.append([df_med,df_medh, df_high])
df.rename(columns={ df.columns[0]: 'yield'}, inplace = True)
df

    yield   EC
0   59.5    Low
1   53.3    Low
2   56.8    Low
3   63.1    Low
4   58.7    Low
0   55.2    Med
1   59.1    Med
2   52.8    Med
3   54.5    Med
4   NaN     Med
0   51.7    Medh
1   48.8    Medh
2   53.9    Medh
3   49.0    Medh
4   NaN     Medh
0   44.6    High
1   48.5    High
2   41.0    High
3   47.3    High
4   46.1    High

一种方法是简单地使用嵌套的 for 循环:

res = (
    pd.DataFrame([[v, name] for arr, name in zip([low, med, medh, high], ["Low", "Med", "Medh", "High"]) for v in arr],
                 columns=["Yield", "EC"]))
print(res)

输出

    Yield    EC
0    59.5   Low
1    53.3   Low
2    56.8   Low
3    63.1   Low
4    58.7   Low
5    55.2   Med
6    59.1   Med
7    52.8   Med
8    54.5   Med
9     NaN   Med
10   51.7  Medh
11   48.8  Medh
12   53.9  Medh
13   49.0  Medh
14    NaN  Medh
15   44.6  High
16   48.5  High
17   41.0  High
18   47.3  High
19   46.1  High

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM