[英]How to merge 3 columns into a new column and add resulting column to existing CSV file in Python (without using Panda)
[英]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.