首页 > 解决方案 > Python:展平存储在数据框中的单个浮点数列表的列表

问题描述

我使用 pyodbc 将一些数据加载到熊猫数据框中。该数据库包含单个浮点数列表的列表。给定的数据框名称是df, type(df.iloc[0][0],在type(df.iloc[0][0][0]给定时list作为输出type(df.iloc[0][0][0][0]给出float。我需要将这些列表展平以便只获得数字,最后只得到一个数字列表而不是列表列表。

只是为了可视化,这里保存的是df.iloc[0][0]

[[0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [32.09984], [0.0], [0.0], [0.0], [0.0], [0.0], [0.40704], [0.40704], [32.09984], [32.061440000000005], [32.048640000000006], [32.01024], [0.49152000000000007], [0.0], [0.00256], [0.00512], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0]]

有任何想法吗?谢谢

标签: pythonpandaslist

解决方案


如果您不介意使用 numpy 数组,您可以这样做:

df.iloc[0][0] = numpy.array(df.iloc[0][0]).flatten()

或者这里的代码来做一整列

df["Column"] = df["Column"].apply(lambda x : np.array(x).flatten())

如果您的数据稍后需要成为列表:

df["Column"] = df["Column"].apply(lambda x : list(np.array(x).flatten()))

对于所有列:

for col in df.columns:
   if col not in ["ColumnThatShouldNotBeTransformed1", "ColumnThatShouldNotBeTransformed2"]:
        df[col] = df[col].apply(lambda x : np.array(x).flatten())

推荐阅读