簡體   English   中英

如何在python中使用Panda在CSV文件中重復列

[英]How to repeat a column in a csv file using panda in python

我想使用dataframe在csv文件中的列重復15次。 該文件具有一列日期和一列數字。 我希望第二行中的每個數字在該行中再重復15次,每個行帶有日期。

temp = []
for i in range(len(obs_sum_shift)-16):
    temp.append(obs_sum_shift[0].values[i:i+16])

obs_sum_shift_16 = pd.DataFrame(temp,index=obs_sum_shift.index[:-16])


GMT 0   1   2   3
1/2/1985 0:00   0   0   0   0.00206
1/2/1985 6:00   0   0   0.00206 0
1/2/1985 12:00  0   0.00206 0   0
1/2/1985 18:00  0.00206 0   0   0

這是上面的代碼的一部分。 我希望它僅在第1列多15次但在同一行中重復該值。 這僅顯示0到4列,但實際上有1到15列。

GMT 0   1   2   3
1/2/1985 0:00   0   0   0   0 
1/2/1985 6:00   0   0   0   0
1/2/1985 12:00  0   0   0   0
1/2/1985 18:00  0.00206 0.00206 0.00206 0.00206
import pandas as pd

df = pd.DataFrame({"GMT": ["1/2/1985 0:00", "1/2/1985 06:00", "1/2/1985 12:00"],
                  "0": [0, 0, 0.00206],
                  "1": [0, 0, 0.00206],
                  "2": [0, 0, 0.00206]})

因此,該想法是創建一個新的數據幀df1 ,該數據幀僅將第一列重復n次。 然后轉這個數據幀和concat到您的原始數據幀。

n = 12
df1 = pd.DataFrame(df["0"] for _ in range(n)).T
df2 = pd.concat([df, df1], axis=1)

編輯:

使用注釋中的示例:

df = pd.DataFrame({"GMT Russian": ["1/1/1985 6:00",
                                   "1/1/1985 12:00",
                                   "1/1/1985 18:00",
                                   "1/2/1985 0:00",
                                   "1/2/1985 6:00",
                                   "1/2/1985 12:00",
                                   "1/2/1985 18:00",
                                   "1/3/1985 0:00",
                                   "1/3/1985 6:00",
                                   "1/3/1985 12:00",
                                   "1/3/1985 18:00"],
                   1: [0, 0, 0, 0, 0, 0, 0.00206, 0, 0, 0, 0]})
df.set_index("GMT Russian", inplace=True)

df.shape    # (11, 1)

現在,按照我上面概述的相同步驟進行操作:

n = 15
df1 = pd.DataFrame(df[1] for _ in range(n)).T
df2 = pd.concat([df, df1], axis=1)

df2.shape    # (11, 16)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM