Nic*_*bel 4 python tuples dataframe pandas
我想从 Pandas 数据帧中的列自动创建一个元组(将传递给 scipy.stats 函数),以便元组的每一行都是数据帧每一列的值。这是我的数据帧的标题:
4_3-a-0 5_3-a-4 7_3-a-3
datetime_pac
2015-09-03 22:00:00 -100.4 -96.857143 -55.000000
2015-09-03 22:01:00 -100.5 -91.700000 -55.600000
2015-09-03 22:02:00 -100.4 -90.875000 -55.900000
2015-09-03 22:03:00 -100.4 -94.000000 -55.555556
2015-09-03 22:04:00 -100.5 -99.500000 -55.545455
Run Code Online (Sandbox Code Playgroud)
我可以像这样手动实现:
from scipy import stats
stats.f_oneway(df.ix[:,0], df.ix[:,1], df.ix[:,2])
Run Code Online (Sandbox Code Playgroud)
但我想在数据框中列数未知的情况下“自动化”它。以下尝试(以及许多变体)将不起作用:
stats.f_oneway(tuple(x) for x in xtmp.values)
stats.f_oneway((xtmp[x]) for x in xtmp.columns)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
只需拨打apply电话tuple:
In [3]:
df = pd.DataFrame(np.random.randn(5,3))
df
Out[3]:
0 1 2
0 0.785562 -0.263813 2.239865
1 1.083918 0.035746 0.429111
2 1.422599 -0.818151 0.765725
3 1.022289 0.098561 -2.393095
4 -0.548451 -0.345796 0.298237
In [4]:
df.apply(tuple, axis=1)
Out[4]:
0 (0.785562108573, -0.263813112223, 2.23986497964)
1 (1.08391788685, 0.0357457180803, 0.429110675053)
2 (1.4225989372, -0.818150896781, 0.765724984713)
3 (1.02228880387, 0.0985610274998, -2.39309469576)
4 (-0.548450748411, -0.345796089243, 0.298237353...
dtype: object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11967 次 |
| 最近记录: |