【问题标题】:Pandas Data Frame saving into csv file熊猫数据框保存到 csv 文件中
【发布时间】:2017-09-10 17:44:52
【问题描述】:

我想知道如何将新的熊猫系列保存到不同列的 csv 文件中。假设我有两个 csv 文件,它们都包含一个列作为“A”。我对它们做了一些数学函数,然后创建了一个新变量作为“B”。

例如:

data = pd.read_csv('filepath')

data['B'] = data['A']*10

# and add the value of data.B into a list as a B_list.append(data.B) 

这将一直持续到第一个和第二个 csv 文件的所有行都已读取完毕。

我想在两个 csv 文件的新电子表格中保存 B 列。 例如我需要这个结果:

colum1(from csv1)        colum2(from csv2)     
     data.B.value             data.b.value

通过使用此代码:

pd.DataFrame(np.array(B_list)).T.to_csv('file.csv', index=False, header=None)

我不会得到我喜欢的结果。

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    因为 pandas DataFrame 中的每一列都是 pandas Series。您的 B_list 实际上是熊猫 Series 的列表,您可以将其转换为 DataFrame() 构造函数,然后转置(或 @jezrael 显示与 pd.concat(..., axis=1) 的水平合并)

    finaldf = pd.DataFrame(B_list).T
    finaldf.to_csv('output.csv', index=False, header=None)
    

    如果 csv 有不同的行,不相等的系列会在相应的行用 NAN 填充。

    【讨论】:

    • 我是 python 和 pandas 的新手 :) 。谢谢大家的帮助。
    【解决方案2】:

    我认为您首先需要来自data1concat 列和来自data2 的列:

    df = pd.concat(B_list, axis=1)
    df.to_csv('file.csv', index=False, header=None)
    

    【讨论】:

    • 感谢您的回复,但我没有 data1 和 data2 ,数据将在我的循环中更新,直到读取所有 csv 文件。
    • data1Dataframe 1 和 data2 第二个数据框的名称。
    • 我也没有 2 个数据框。原始 csv 文件将由新列 B 更新,并且在循环中,该列将每次更新。我想在丢失数据之前将此列保存在一个新的 csv 文件中。B.也许我没有很好地解释我的意思。
    • 对不起,我不太明白。现在它应该可以正常工作了。
    猜你喜欢
    • 2019-05-21
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2019-01-27
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多