python - 熊猫数据框用循环创建列
问题描述
我正在尝试添加新列并使用 for 循环填充数据,从价格列中获取数据并将 1000 次迭代插入到新的数据框列中,在 1000 次价格列迭代之后再为 1000 次创建一个新列,等等。
import pandas as pd
import matplotlib.pyplot as plt
data_frame = pd.read_csv('candle_data.csv', names=['Time', 'Symbol','Side', 'Size', 'Price','1','2','3','4','5'])
price_df = pd.DataFrame()
count_tick = 0
count_candle = 0
for price in data_frame['Price']:
if count_tick < 1000:
price_df[count_candle] = price
count_tick +=1
elif count_tick == 1000:
count_tick = 0
count_candle +=1
price_df.head()
解决方案
不必循环遍历数据框,可以使用切片来实现,请看下面的示例代码。我已经加载了一个包含 100 行的数据框,并尝试从“col1”的前 50 行创建列 -“col3”,并从“col1”的下 50 行发布该列“col4”。您可以修改以下代码以指向您的列和您想要的值
import pandas as pd
import numpy as np
if __name__ == '__main__':
col1 = np.linspace(0,100,100)
col2 = np.linspace(100, 200, 100)
dict = {'col1':col1,'col2':col2}
df = pd.DataFrame(dict)
df['col3']= df['col1'][0:50]
df['col4'] = df['col1'][50:100]
print(df)
解决方案 2 基于来自评论的添加信息
import pandas as pd
import numpy as np
if __name__ == '__main__':
pd.set_option('display.width', 100000)
pd.set_option('display.max_columns', 500)
### partition size for example I have taken a low volums 20
part_size = 20
## number generation for data frame
col1 = np.linspace(0,100,100)
col2 = np.linspace(100, 200, 100)
## create initial data frame
dict = {'col1':col1,'col2':col2}
df = pd.DataFrame(dict)
len = df.shape[0]
## tells you how many new columns you need
rec = int(len/part_size)
_ = {}
## initialize slicing variables
low =0
high=part_size
print(len)
for i in range(rec):
if high >= len:
_['col_name_here{0}'.format(i)] = df[low:]['col1']
break
else:
_['col_name_here{0}'.format(i)] = df[low:high]['col1']
low = high
high+= part_size
df = df.assign(**_)
print(df)
推荐阅读
- sql - SQL:返回日期最早的记录
- maps - 为什么 Here Maps Routes App 和 Web 不同
- jquery - 使用动态创建的内容清除 Div 的问题
- laravel-5.7 - 如何在laravel数据库的一列中插入多个字段数据
- java - 如何删除 XYLineAndShapeRenderer 中的点?
- python - 从 s3 存储桶下载所有文件,包括分页 python
- python - 如何在 Matplotlib 中连接图形坐标?
- excel - 从 excel 文件提供的数据中自定义异常
- javascript - 如何将模块导出的函数导入 HTML onclick="" 事件处理程序的全局范围?
- spring - 如何比较 Mono、Flux 中的相似数据